我正在从事电子商务项目(Asp.Net Mvc3)。下面提到了我的产品和类别路线
routes.MapLocalizedRoute(
"Product",
"p/{productId}/{SeName}",
new { controller = "Catalog", action = "Product", SeName = UrlParameter.Optional },
);
routes.MapLocalizedRoute(
"Product",
"c/{categoryId}/{SeName}",
new { controller = "Catalog", action = "Category", SeName = UrlParameter.Optional },
);
当使用浏览url http://mysite.in/p/123/my-product
时,它会重定向到正确的产品,同样的事情也会发生在类别中。
现在,当我提供错误的SeName或只是从url中删除SeName时,它会重定向到正确的产品/类别,这是正确的。但我希望附加有效的SeName,即如果url中有错误或没有SeName,则应在url中添加代表性产品/类别的名称。以上功能对网站SEO有任何影响吗。
Stackoverflow也有同样的想法,即尽管SeName是可选的,但如果没有提供,它会附加SeName。
若有人处理过同样的问题,请回复。
这被称为"slug",通常在操作过滤器中处理。Phil Haack有一篇很好的文章《操作操作方法参数》对此进行了详细的解释。基本概念是处理过滤器OnActionExecuting
方法来提取ID
参数的路由值,然后从数据库中查找相应的名称,并将该值添加到Name
参数中。