AuthorizeAttribute中的引用通用url参数

时间:2011-03-07 21:35:54

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing

如果我的操作有/controller/action/{id}之类的路径,我可以通过id在AuthorizeAttribute中获取httpContext.Request.RequestContext.RouteData.Values["id"]

相反,如果它类似/controller/action?id={id},我可以通过httpContext.Request.QueryString["id"]来获得它。

如果是来自POST的表单数据,我还需要另一种方式。

有没有办法说“无论路线是如何指定的,都要在名称为'id'的参数中输入您的内容?”

1 个答案:

答案 0 :(得分:6)

var id = Request.RequestContext.RouteData.Values["id"] ?? Request.Params["id"] as string;

或者如果您想要使用GET和POST参数来支持路由数据:

var id = Request.Params["id"] ?? Request.RequestContext.RouteData.Values["id"] as string;