我正在开发电子商务项目(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 },
);
当使用浏览网址http://mysite.in/p/123/my-product
时,它会重定向到正确的产品,同样的事情也会发生在类别中。
现在,当我提供错误的SeName或只是从网址中删除SeName时,它会重定向到正确的产品/类别,这是正确的。但我想要附加有效的SeName,即如果url中的错误或没有SeName,则应在url中添加repsective product / category。以上功能对网站搜索引擎优化是否有任何影响。
Stackoverflow也是这样想的,尽管SeName是可选的,如果没有提供,它会附加seName。
如果有人处理同样的问题,请回复。
答案 0 :(得分:1)
这被称为'slug',通常在动作过滤器中处理。 Phil Haack有一篇很好的文章Manipulating Action Method Parameters,详细解释了它。基本概念是处理过滤器OnActionExecuting
方法以提取ID
参数的路由值,然后从数据库中查找相应的名称并将该值添加到Name
参数。