c#razor url参数来自视图

Sha*_*kan 62 url asp.net-mvc razor

为什么Request["parameterName"]在视图中返回null?我知道我可以从控制器获取它,但我必须在视图中进行一些检查.我正在使用ASP.NET MVC 3.

Wou*_*ons 154

您可以使用以下内容:

Request.Params["paramName"]
Run Code Online (Sandbox Code Playgroud)

另请参阅: Request.Params和Request.Form何时不同?

  • 这仅适用于“?”之后的参数,不适用于路由参数。 (4认同)
  • 好的!成功了!你有我的+1!:) (2认同)

Dan*_*iel 36

在这个帖子中找到了解决方案

@(ViewContext.RouteData.Values["parameterName"])
Run Code Online (Sandbox Code Playgroud)

  • 这仅在查询字符串参数也是操作的参数时才有效. (6认同)

Jam*_*xon 6

如果您在 View 中进行检查,请将值放入ViewBag.

在您的控制器中:

ViewBag["parameterName"] = Request["parameterName"];
Run Code Online (Sandbox Code Playgroud)

值得注意的是,RequestResponse属性由Controller类公开。它们与HttpRequest和具有相同的语义HttpResponse

  • 对于那些收到异常“无法将 [] 索引应用于‘System.Dynamic.DynamicObject’类型的表达式”的人,只需将 ViewBag 替换为 ViewData(来源:http://forums.asp.net/t/1800747 .aspx/1) (2认同)

Rav*_*Ram 5

@(ViewContext.RouteData.Values["parameterName"]) 与ROUTE PARAM合作.

Request.Params["paramName"] 与ROUTE PARAM无法合作.