2012-12-12 76 views
1

我有一個小問題,我希望有人能幫助我。MVC 4在控制器中編輯路由參數

關於ASP.net MVC 4(C#)我需要能夠從我的控制器編輯我的路線參數。

例如請求的URL是

MyController/MyAction/param1/param2 
現在從 MyAction

我需要使其顯示

MyController/MyAction/Modifiedparam1/Modifiedparam2 

這樣做的目的是,我從檢索參數翻譯編輯發回的網址我的數據庫從語言變化。

回答

0

請使用重定向結果這個(在MyAction一些條件):

return RedirectToAction("MyAction", { param1Name = Modifiedparam1, param2Name = Modifiedparam2 }; 

基本上你不能在控制器修改URL。 Url是瀏覽器發送的一些內容來調用某個動作。您可能會說瀏覽器將用戶重定向到另一個網址。

+0

這是我目前正在做的,但使用這種技術,我需要從我的數據庫第二次重新加載數據。 – Neo

+0

你有什麼性能問題嗎?這項手術多久進行一次?您可以使用緩存。另外,如果用戶在點擊您的網站鏈接後進入這種情況,可能需要更新鏈接以修改參數而不是當前(如果沒有問題)。 –

+0

以某種方式,如果你認爲只有當你改變網站的語言時纔會這樣做,我猜雙重加載不會經常發生。所有到這些頁面的鏈接都是根據頁面設置的語言動態加載的。生病說這證實了我已經做了什麼。乾杯 – Neo

0

不要與框架戰鬥。它遲早會作出反擊。相反,遵循mvc原則,從控制器動作或過濾器/攔截器重定向來執行此操作。