如何在ASP.Net MVC视图中访问查询字符串?

56

我如何在视图中访问查询字符串的值?


从未听说过任何人在asp.net mvc中需要这样做,可能你想要在Action中访问它,因为那将非常容易。 - Omu
1
你确定在MVC中需要查询字符串吗?或许可以举个例子说明你的需求。 - H H
5个回答

68

在视图中访问查询参数并不是一个好的设计。视图应该使用控制器提供的模型。因此,控制器读取查询参数并将其传递给视图。如果您想忽略此规则,您总是可以在视图中这样做:

<%= Request["SomeParameter"] %>

但我强烈不建议你这样做。


25

在View中,您可以直接访问它。无需在Controller中编写任何代码,但您可以这样做。

例如 - 如果您的查询字符串具有名为id的参数,类似于?id=1

Razor语法:

在View中,您可以直接访问它。无需在Controller中编写任何代码,但您可以这样做。

例如 - 如果您的查询字符串具有名为id的参数,类似于?id=1

Razor语法:

@Request.QueryString["id"]

3
CS0103 错误:当前上下文中不存在名为'Request'的变量。 - Jonnie

13

.Net Core中:

@Context.Request.Query["SomeParameter"]

8

我建议在您的控制器中读取查询字符串的值,然后将该值设置为ViewBag中的属性。然后可以从视图中读取ViewBag属性。

例如:

ViewBag.MyQSVal = Request.QueryString["myValue"];

那么,在您的视图中:
@if(ViewBag.MyQSVal == "something"){ ... }

0
正如Darin所建议的那样,您不应在视图中使用Querystring。但是有一件事情是,由于它是Asp.Net,您可以在视图中访问Request变量,如果您访问它,您将拥有所有存在的函数和成员。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接