Asp.net mvc 4 MVC中URL中的问号
当我动态生成超链接时,我会在URL中添加一个问号,它来自何处?它的含义是什么Asp.net mvc 4 MVC中URL中的问号,asp.net-mvc-4,Asp.net Mvc 4,当我动态生成超链接时,我会在URL中添加一个问号,它来自何处?它的含义是什么 <li> @Html.ActionLink(@genre.Name, "Browse", new { genre = genre.Name })</li> http://localhost:26239/Store/Browse?genre=Disco @Html.ActionLink(@genre.Name,“Browse”,新的{genre=genre.Name}) http://loc
<li> @Html.ActionLink(@genre.Name, "Browse", new { genre = genre.Name })</li>
http://localhost:26239/Store/Browse?genre=Disco
@Html.ActionLink(@genre.Name,“Browse”,新的{genre=genre.Name})
http://localhost:26239/Store/Browse?genre=Disco
这就是所谓的。这是在URL中传递变量的一种非常常见的方法。这称为。在URL中传递变量是一种非常常见的方法。如果在与操作方法匹配的路由中没有定义“流派”作为参数,它将作为查询字符串传递。如果在与操作方法匹配的路由中没有定义“流派”作为参数,它将作为查询字符串传递。有一个典型的示例。对于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
第三个示例-没有参数(因为id
是可选的)
@Html.ActionLink(@item.Name,“Detail”)
http://localhost:26239/Book/Detail
有一个典型的例子。对于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
第三个示例-没有参数(因为id
是可选的)
@Html.ActionLink(@item.Name,“Detail”)
http://localhost:26239/Book/Detail
因为您使用new{genre=genre.Name}
向路由添加了一个值。由于没有为名为genre
=的参数定义路由,即{controller}/{action}/{genre}
它被添加为查询字符串参数,而不是路由参数。如果您确实定义了一个路由,它将生成为../Store/Browse/Disco
,因为您使用new{genre=genre.Name}
向路由添加了一个值。由于没有为名为genre
=的参数定义路由,即{controller}/{action}/{genre}
它被添加为查询字符串参数,而不是路由参数。如果您确实定义了路由,它将生成为../Store/Browse/Disco