我正在从事电子商务项目(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或只是从URL中删除SeName它重定向到正确的产品/类别,这是正确的。但是我想要追加有效的SeName,即,如果URL sename中存在错误或没有SeName,则应该在url中添加repsective product/category。以上功能性对Site SEO有任何影响。
Stackoverflow做同样的想法,即虽然SeName是可选的,如果没有提供,它会追加seName。
如果有人在同一个问题上工作过,请回复。
这通常是使用动作过滤器完成的。 [本博客](http://haacked.com/archive/2010/02/21/manipulating-action-method-parameters.aspx/),虽然不完全相同的问题,应该指出你在正确的方向。 – 2014-10-30 09:41:52
@StephenMuecke我认为这是我想要的,但如果每次调用db来检查动作过滤器中的sename并在需要时替换 – 2014-10-30 10:01:03
除非在某处缓存ID/Name值,否则这将是唯一的选择我怀疑它超过几毫秒) – 2014-10-30 10:05:44