我有两个webapi控制器ControllerA和ControllerB。每个人都有一个POST动作,即
[HttpPost]
public HttpResponseMessage Action1(CustomObjectA req, string pan="")
[HttpPost]
public HttpResponseMessage Action2(CustomObjectB req, string mpxn="")
我的网络API路由如下所示
config.Routes.MapHttpRoute(
name: "Purchase",
routeTemplate: "{controller}/{pan}",
defaults: new
{
controller = "ControllerA"
pan = RouteParameter.Optional
});
config.Routes.MapHttpRoute(
name: "Vend",
routeTemplate: "{controller}/{mpxn}",
defaults: new
{
controller = "ControllerB",
mpxn = RouteParameter.Optional
});
当我从fiddler调用POST请求到/ ControllerA / 1时它工作正常,但Action1中pan参数的值设置为1 但是当我从fiddler调用POST请求到/ ControllerB / 2时,它来到Action2但是没有设置mpxn的值,它是""。 有人可以帮我解释一下我在路由方面所犯的错误吗?
由于
答案 0 :(得分:0)
希望这些链接对您有所帮助:attribute routing-1 attribute routing-2
属性路由使您可以更好地控制Web API中的URI。例如,您可以轻松创建描述资源层次结构的URI。
仍然完全支持早期的路由方式,称为基于约定的路由。实际上,您可以在同一个项目中结合使用这两种技术。