如果我的操作有类似 /controller/action/{id}
的路径我可以得到id
在 AuthorizeAttribute 中通过做 httpContext.Request.RequestContext.RouteData.Values["id"]
.
相反,如果它类似于 /controller/action?id={id}
我可以通过做 httpContext.Request.QueryString["id"]
得到它.
如果它是来自 POST 的表单数据,我将需要另一种方式。
有没有办法说“无论路由是如何指定的,都可以获取名称为 'id' 的参数中的内容?”
最佳答案
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;
关于asp.net-mvc - 在 AuthorizeAttribute 中引用通用 url 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5225551/