我有一個多語言的MVC應用程序,其中包括一些簡單的「CMS」頁面,由頁面控制器處理。我已經定義的路線爲:MVC路由衝突的問題
routes.MapRoute(
"Page",
"Page/{name}",
new { controller = "Page", action = "Index", name = "" }
);
另外我有在其用於改變當前頁面的語言「基本控制器」中定義的方法。
public ActionResult ChangeCulture(Culture lang, string returnUrl)
{
if (returnUrl.Length >= 3)
{
returnUrl = returnUrl.Substring(3);
}
return Redirect("/" + lang.ToString() + returnUrl);
}
例如,對於英語的「關於我們」頁面,西班牙語版本通過以下網址可用: http://localhost/en/Page/ChangeCulture?lang=2&returnUrl=/es/Page/AboutUs
的問題是,這個URL映射到我已經路線爲顯然不存在的CMS頁面定義。有沒有辦法可以忽略URL「Page/ChangeCulture」,以便映射到正確的方法,即在「基本控制器」中定義的方法?
感謝,
何塞
這工作完美 - 謝謝。 – jose