asp.net-mvc - 在 AuthorizeAttribute 中引用通用 url 参数

标签 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' 的参数中的内容?”

最佳答案

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/

相关文章:

c# - 当转换为父类时查找 TypeOf Child 类

asp.net-mvc - Controller 可以影响 _layout.cshtml 文件吗?

iis - asp.net mvc 3的必要要求?

c# - 传递 id,但不要在实际 url 中显示它

c# - MVC 路由有冲突

c# - HttpPost Ajax 调用 ASP.NET CORE 中的 404 错误

asp.net - Angular-CLI .NET Core 中的index.html 是如何调用的?

c# - 复选框状态始终作为 null 传递给 Controller

javascript - 使用javascript的动态字典

asp.net-mvc-routing - ASP.NET Core 1.0 中的属性路由