我正在從事電子商務項目(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