2013-02-19 57 views
0

我正在使用MVC4/Razor。在GET請求之後,視圖顯示查詢字符串,並且在POST請求之後,視圖不顯示查詢字符串 - 兩者都如預期的那樣。POST後顯示查詢字符串

但是,我有一個[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]的行動,我需要POST一個表單,並顯示相應的查詢字符串。

我該如何在服務器端做到這一點? 我知道這可以通過轉換爲GET請求在客戶端完成,我很好奇看到如何做到這一點,但只有這樣才能使其工作。

回答

0

您可以用return RedirectToAction發佈參數

return RedirectToAction("About", "Create", 
         new { id = PId, Name=PName }); // more params if needed 

的參數將被包含在查詢字符串。

+0

好的,它可以像你寫的一樣工作,但是我傳遞了一個'RouteValueDictionary'而不是單個的參數,並且放下了「__RequestVerificationToken」鍵。它重定向到相同的動作,這使得它看起來像一個GET,併發送一個查詢字符串的響應! – 2013-02-19 01:08:48

+0

我希望這樣做不會有意外的安全副作用...... – 2013-02-19 01:09:36

+0

沒有安全問題,因爲它先通過發佈,但路線看起來有點不同。如果你有id或者param你的路由,它通常不會遵守路由,而是把params放入查詢字符串中。參數傳遞的影響沒有什麼不同。 Action Method以相同的方式獲取每個參數。 – 2013-02-19 01:26:27