我对asp-路由-*标记助手的工作方式感到困惑。据我所知,它与我设置的路由有一定的联系。例如。
routes.MapRoute(
name: null,
template: "{category}/Page{page:int}",
defaults: new { controller = "Product", action = "List" }
);在这里,我将我的路径映射为:/follow/PageNumber,用于Controller "Product“中的操作"List”
当单击以下代码时,将遵循前面的映射路径
<a class="btn btn-block
@(cat == ViewBag.SelectedCategory ? "btn-primary" : "btn-default")"
asp-controller="Product"
asp-action="List"
asp-route-category="@cat"
asp-route-page="1">@cat</a>那么,我如何理解“asp-路由-类别”将在我的routeMap模板中搜索“{ search }”,然后“asp-路由-页”将在routeMap模板中搜索"{page}“?
MS上的文档很容易混淆,或者只是为了抽象,有人能以更好的方式确认或解释这一点吗?
发布于 2017-06-15 13:04:20
在使用传统路由时,正如您所做的那样,controller和action参数是必需的,并映射到控制器和操作名称。
因此,如果您想使用类别和页面参数路由到Controller Product中的Action Product,您的路由应该如下所示:
routes.MapRoute(
name: null,
template: "{controller}/{action}/{category}/Page{page:int}",
defaults: new { controller = "Product", action = "List" }
);更新:
您正在使用的asp-route属性将提供用于路由值的参数。
因此,基本上,asp-route-MyParameter将添加MyParameter来路由具有指定值的值。
https://stackoverflow.com/questions/44567265
复制相似问题