如果我的操作有/controller/action/{id}
之类的路径,我可以通过id
在AuthorizeAttribute中获取httpContext.Request.RequestContext.RouteData.Values["id"]
。
相反,如果它类似/controller/action?id={id}
,我可以通过httpContext.Request.QueryString["id"]
来获得它。
如果是来自POST的表单数据,我还需要另一种方式。
有没有办法说“无论路线是如何指定的,都要在名称为'id'的参数中输入您的内容?”
答案 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;