当我动态生成我的超链接时,我在URL中添加了一个问号,它来自于它的含义。
<li> @Html.ActionLink(@genre.Name, "Browse", new { genre = genre.Name })</li>
http://localhost:26239/Store/Browse?genre=Disco
答案 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