dia*_*aho 12 asp.net-mvc asp.net-mvc-routing asp.net-web-api
背景:
在MVC3中,我使用以下语法指定自定义Action参数名称:
public ActionResult ActionName([Bind(Prefix = "principalID")] int userID,
[Bind(Prefix = "dependentID")] long applicationID)
Run Code Online (Sandbox Code Playgroud)
此操作的路由定义如下(ActionNameConstraint是自定义IRouteConstraint):
routes.MapHttpRoute(
"DependantAction",
"{controller}/{principalID}/{action}/{dependentID}",
new {controller = @"[^0-9]+", action = ActionNameConstraint.Instance, dependentID = RouteParameter.Optional}
);
Run Code Online (Sandbox Code Playgroud)
题:
这BindAttribute是一System.Web.Mvc堂课.Web Api中是否存在相当于此(参数绑定)的内容?
当然,如果有其他解决方案可以达到相同的效果,我很乐意听到它们!
您可以使用该System.Web.Http.FromUriAttribute属性指定用于模型绑定的参数名称.
public ActionResult ActionName(
[FromUri(Name = "principalID.userID")] int userID,
[FromUri(Name= "dependentID.applicationID")] long applicationID
)
Run Code Online (Sandbox Code Playgroud)
FromUri告诉模型绑定检查查询字符串和RouteData请求.
Mel*_*igy -2
据我所知,在 WebAPI 中,您只需使用特殊的控制器类基和特殊的操作名称,但毕竟它们仍然是控制器和操作。
你尝试过但没有成功吗?快速浏览一下这篇文章似乎表明模型绑定一般(但不是特定属性)应该正常工作:
http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx
编辑:
有人说这只适用于 MVC,并否决了答案。来吧,更多参考:
| 归档时间: |
|
| 查看次数: |
2710 次 |
| 最近记录: |