MVC中URL中的问号

时间:2015-08-30 03:58:59

标签: asp.net-mvc-4

当我动态生成我的超链接时,我在URL中添加了一个问号,它来自于它的含义。

<li> @Html.ActionLink(@genre.Name, "Browse", new { genre = genre.Name })</li>

 http://localhost:26239/Store/Browse?genre=Disco

3 个答案:

答案 0 :(得分:1)

这称为query parameter。这是在URL中传递变量的一种非常常见的方式。

答案 1 :(得分:1)

如果&#34;流派&#34;在作为参数的action方法匹配的路由中未定义,它将作为查询字符串传递。

答案 2 :(得分:1)

有典型的例子。 BookDetail有一条路线:

routes.MapRoute(
   name: "BookDetail",
   url: "{controller}/{action}/{id}",
   defaults: new { controller = "Book", action = "Detail", id = UrlParameter.Optional }
);

第一个例子 - 在路线规则

中定义了一个参数id
<li>@Html.ActionLink(@item.Name, "Detail", new { id = item.Id })</li>

http://localhost:26239/Book/Detail/221

第二个例子 - 路由

中未定义另一个参数xy
<li>@Html.ActionLink(@item.Name, "Detail", new { id = item.Id, xy = item.Xy })</li>

http://localhost:26239/Book/Detail/221?xy=SomeValue

第三个例子 - 没有参数(因为id是可选的)

<li>@Html.ActionLink(@item.Name, "Detail")</li>

http://localhost:26239/Book/Detail