更正浏览url上的可选路由参数



我正在从事电子商务项目(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参数中。

最新更新