asp.net-mvc – MVC4 Web Api中的[Bind(Prefix =“principalId”)]的等效值?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – MVC4 Web Api中的[Bind(Prefix =“principalId”)]的等效值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
背景:

在MVC3中,我使用以下语法来指定自定义Action参数名称

public ActionResult ActionName([Bind(Prefix = "principalID")] int userID,[Bind(Prefix = "dependentID")] long applicationID)

此操作的路由定义如下(ActionNameConstraint是自定义IRouteConstraint):

routes.MapHttpRoute(
    "DependantAction","{controller}/{principalID}/{action}/{dependentID}",new {controller = @"[^0-9]+",action = ActionNameConstraint.Instance,dependentID = RouteParameter.Optional}
    );

题:

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
                    )

FromUri告诉模型绑定来检查请求的查询字符串和RouteData.

猜你在找的asp.Net相关文章