我第一次尝试nopcommerce。在探索它时,我发现有一个网址http://localhost:15536/apple-macbook
,其中 apple-macbook 是产品名称。
我想知道如何完成这样的动态路由。我可以知道吗?
答案 0 :(得分:1)
返回nopCommerce 3.9您将在此处找到此路线的定义
<强> ... / Nop.Web /基础设施/ GenericUrlRouteProvider.cs 强>
routes.MapGenericPathRoute("GenericUrl",
"{generic_se_name}",
new {controller = "Common", action = "GenericUrl"},
new[] {"Nop.Web.Controllers"});
.MapGenericPathRoute()可以在 ... / Nop.Web.Framework / Seo / GenericPathRouteExtensions.cs
中找到此 GenericPathRoute 将查找数据库(UrlRecord表),如果某些内容与请求匹配,则会将请求重定向到找到的实体的控制器。
在您的情况下,这意味着重定向到
case "product":
{
data.Values["controller"] = "Product";
data.Values["action"] = "ProductDetails";
data.Values["productid"] = urlRecord.EntityId;
data.Values["SeName"] = urlRecord.Slug;
}
使用上面的RouteData,可以调用ProductController上的ProductDetails操作。