2010-09-28 71 views
0

我需要將查詢字符串傳回給響應 - 所以通過jQuery的手段,我可​​以用它做一些事情。ASP.NET MVC 2 - 如何將查詢字符串傳遞迴響應?

是這樣的: 返回RedirectToAction( 「登錄」, 「帳戶」,新{ID = 「?行動=更新」});

URL需要落得像:../Account/LogOn/?action=update

但上述代碼產生這個代替:../Account/LogOn/%3faction%3dupdate

我不想編碼...

幫助?

+0

任何特定的原因,你想要使用查詢字符串,而不是把行動權利放在路徑,例如, '/帳號/登錄/ update'?你也可以定義一個帳戶/登錄/ {動作}或類似的路線,或可能使用一個區域=帳戶,控制器=登錄,行動=更新... – 2010-09-28 19:58:11

+0

@Hightechrider - 原因是因爲客戶端代碼將要想要檢索一些參數 – Mark 2010-09-28 20:09:48

+1

大多數人使用隱藏字段,javascript常量,cookie等將參數傳遞給它們的javascript,而不是查詢用戶可以輕鬆修改的字符串參數。 – 2010-09-28 22:16:20

回答

3

我認爲,在這種情況下,你應該使用

return RedirectToAction("About", "Home", new { sendto = "update" }); 

不能使用關鍵字「動作」,因爲它會通過MVC被消耗掉,所以我用「的sendto」取代它,而不是。

+0

該工作,謝謝 – Mark 2010-09-28 20:14:04

+1

關於動作關鍵字,也許@action =「更新」將工作? @似乎用於轉義關鍵字,如@class。 – 2010-09-29 07:33:04

+0

在這種情況下,它不是一回事action是MVC用來處理路由信息的特殊關鍵字,而class是c#使用的特殊關鍵字 - 這就是爲什麼需要轉義它。 – Buildstarted 2010-09-29 13:03:32

0

在您的控制器中,使用@符號命名參數,如Pawel所寫。 所以

public ActionResult YourAction(string @action) will work 
public ActionResult YourAction(string action) will fail 
相關問題