使用POST方法.net mvc找到了与请求匹配的多个操作

时间:2014-06-05 10:22:32

标签: c# asp.net-mvc

控制器如下所示,get工作正常,但是当调用post时,会收到引用的内容:

[ActionName("import")]
public void PostImport([FromBody]string file = "myString")
{}

[ActionName("something")]
public void PostSomething()
{}

[ActionName("bool")]
public Boolean GetBool()
{}

路线注册如下:

config.Routes.MapHttpRoute(
  name: "DefaultApi",
  routeTemplate: "api/{controller}/{id}",
  defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
  name: "ControllerAndAction",
  routeTemplate: "api/{controller}/{action}"
);
routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

我正在使用的请求是:

curl -H "Content-Type: application/json" -d '{"file":"myOtherString"}' http://localhost:6
1393/api/admin/import

1 个答案:

答案 0 :(得分:1)

URL / api / admin / import匹配两条不同的路由。

它将DefaultApi与" admin"的控制器匹配。 id为" import"。

它还将ControllerAndAction与" admin"的控制器相匹配。 " import"。

的行动

因此无法确定使用哪条路线