我会根据您的经验来帮助我解决问题。 我有以下代码:
public class FanController : ApiController
{
[ActionName("ImportAwb")]
[HttpPost]
public async Task<object> ImportAwb([FromBody]JObject data)
{
try
{
string username = data["username"].ToString();
string clientId = data["clientId"].ToString();
string userPass = data["userPass"].ToString();
string fisier = data["fisier"].ToString();
var responseString = await FanCourier.ImportAwbIntegrat(username, clientId, userPass, fisier);
return Ok(responseString);
}
catch (Exception ex)
{
return (ex);
}
}
如果我只留下一个这样的方法,我可以毫无问题地从Postman调用它,但是如果我尝试制作另一个,就像这样:
{
public class FanController : ApiController
{
[ActionName("ImportAwb")]
[HttpPost]
public async Task<object> ImportAwb([FromBody]JObject data)
{
try
{
string username = data["username"].ToString();
string clientId = data["clientId"].ToString();
string userPass = data["userPass"].ToString();
string fisier = data["fisier"].ToString();
var responseString = await FanCourier.ImportAwbIntegrat(username, clientId, userPass, fisier);
return Ok(responseString);
}
catch (Exception ex)
{
return (ex);
}
}
[ActionName("PrintareAwbHtml")]
[HttpPost]
public async Task<object> PrintareAwbHtml([FromBody]FanCourier fanCourier)
{
try
{
var responseString =
await fanCourier.PrintareAwbHtml(fanCourier);
return Ok(responseString);
}
catch (Exception ex)
{
return (ex);
}
}
邮差打来的电话是:
"Multiple actions were found that match the request: \r\nImportAwb on type Courier.Rest.Controllers.FanController\r\nPrintareAwbHtml on type Courier.Rest.Controllers.FanController"
我尝试在[Route("api/[controller]")]
之前添加public class FanController : ApiController
,并且错误更改为:
No action was found on the controller 'Fan' that matches the request.
我试图在互联网上找到一些东西,但没有发现任何可以帮助我解决问题的东西。
答案 0 :(得分:2)
您应该为每个操作定义路由,以便知道在调用特定API时将调用哪个路由。
使用[Route]
标签来完成
[ActionName("ImportAwb")]
[HttpPost]
[Route("Action1")]
public async Task<object> ImportAwb([FromBody]JObject data)
{
...
然后从邮递员那里,用URL呼叫端点。 http://yoururl.com/Action1
。
(您的网址将是您为此控制器设置的路径...可能包含/ api或您可能已配置的路径。在该网址末尾添加/ Action1)
您可以具有指向同一URL的多个路由,只要它们是不同的方法(发布,获取,删除,修补等)即可。