【发布时间】:2014-12-26 05:56:45
【问题描述】:
我正在从事电子商务项目 (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 中添加代表产品/类别的 sename。上述功能对网站 SEO 有影响吗?
Stackoverflow 也有同样的想法,即虽然 SeName 是可选的,但如果没有提供,它会附加 seName。
如果有人处理过同样的问题,请回复。
【问题讨论】:
-
这通常使用操作过滤器来完成。 This blog,虽然不是完全相同的问题,但应该为您指明正确的方向。
-
@StephenMuecke 我认为这是我想要的,但是每次调用 db 以检查 actionfilter 中的 sename 并在需要时替换是否可行
-
除非您在某处缓存 ID/Name 值,否则这将是您唯一的选择(我怀疑它超过几毫秒)
-
@StephenMuecke 感谢您的宝贵指导。您可以发表您的评论作为答案,以便我接受。
-
@StephenMuecke 这两种方法中的任何一种都会影响网站的 SEO,如果您有相关知识,请分享。
标签: asp.net asp.net-mvc-3 url-routing