我需要將查詢字符串傳回給響應 - 所以通過jQuery的手段,我可以用它做一些事情。ASP.NET MVC 2 - 如何將查詢字符串傳遞迴響應?
是這樣的: 返回RedirectToAction( 「登錄」, 「帳戶」,新{ID = 「?行動=更新」});
URL需要落得像:../Account/LogOn/?action=update
但上述代碼產生這個代替:../Account/LogOn/%3faction%3dupdate
我不想編碼...
幫助?
我需要將查詢字符串傳回給響應 - 所以通過jQuery的手段,我可以用它做一些事情。ASP.NET MVC 2 - 如何將查詢字符串傳遞迴響應?
是這樣的: 返回RedirectToAction( 「登錄」, 「帳戶」,新{ID = 「?行動=更新」});
URL需要落得像:../Account/LogOn/?action=update
但上述代碼產生這個代替:../Account/LogOn/%3faction%3dupdate
我不想編碼...
幫助?
我認爲,在這種情況下,你應該使用
return RedirectToAction("About", "Home", new { sendto = "update" });
不能使用關鍵字「動作」,因爲它會通過MVC被消耗掉,所以我用「的sendto」取代它,而不是。
該工作,謝謝 – Mark 2010-09-28 20:14:04
關於動作關鍵字,也許@action =「更新」將工作? @似乎用於轉義關鍵字,如@class。 – 2010-09-29 07:33:04
在這種情況下,它不是一回事action是MVC用來處理路由信息的特殊關鍵字,而class是c#使用的特殊關鍵字 - 這就是爲什麼需要轉義它。 – Buildstarted 2010-09-29 13:03:32
在您的控制器中,使用@符號命名參數,如Pawel所寫。 所以
public ActionResult YourAction(string @action) will work
public ActionResult YourAction(string action) will fail
任何特定的原因,你想要使用查詢字符串,而不是把行動權利放在路徑,例如, '/帳號/登錄/ update'?你也可以定義一個帳戶/登錄/ {動作}或類似的路線,或可能使用一個區域=帳戶,控制器=登錄,行動=更新... – 2010-09-28 19:58:11
@Hightechrider - 原因是因爲客戶端代碼將要想要檢索一些參數 – Mark 2010-09-28 20:09:48
大多數人使用隱藏字段,javascript常量,cookie等將參數傳遞給它們的javascript,而不是查詢用戶可以輕鬆修改的字符串參數。 – 2010-09-28 22:16:20