我有一個頁面包含一個帶有ActionLink的客戶端列表,允許用戶顯示(或隱藏)「非活動」客戶端。 showInactive=True
作爲查詢字符串連接到控制器。在顯示「非活動」客戶端後,我編輯其中一個客戶端,但是當我保存任何更改或返回列表時,查詢字符串消失。在這些請求中堅持查詢字符串的最佳方式是什麼?我已經嘗試了TempData字典,但顯然我試圖將它用於未設計處理的東西。MVC中的請求持續查詢字符串3
回答
一種簡單的方式來實現,這是添加returnUrl
參數到你的動作(一個或多個),例如:
[HttpPost]
public ActionResult Edit(int id, ClientEditModel model, string returnUrl)
{
if (!ModelState.IsValid) return View();
try
{
// do something
return Redirect(returnUrl);
}
catch
{
return View();
}
}
然後在您的視圖,你可以這樣稱呼你的行爲:
@Html.ActionLink("Edit", "Edit", new { id = Model.Id, returnUrl = Request.RawUrl })
在這個設置中,當用戶完成編輯時,她將被帶回到她之前的同一個確切位置,不僅堅持showInactive
,而且堅持列表中可能包含的任何其他參數,例如頁碼,搜索標準,排列順序等。
很好的解決方案,謝謝。 – 2011-05-19 06:07:36
真的很不錯的解決方案! :) – 2012-02-25 03:02:12
將查詢字符串參數傳遞到您的編輯頁面,並將該值添加爲隱藏表單字段參數。如果它不存在,則默認爲false。通過這種方式,當您執行編輯帖子並進行處理時,您可以將值從綁定模型/ FormCollection /等中提取出來,並根據它的值使用適當的查詢字符串參數值進行重定向。
return this.RedirectToAction("ListClients", new { showInactive = *INSERT THE VALUE* });
其轉換爲
/CurrentController/ListClients?showInactive=*value*
謝謝Khepri - 似乎有點ha to傳遞隱藏的表單域。我希望有一個更清晰的解決方案。 – 2011-05-19 01:50:03
據我所知,沒有。我可以理解使用Session來堅持這一點,以避免傳遞值,將其提供給表單,並在帖子中讀取它的開銷,但我個人而言,我只是將值傳遞給它。 – Khepri 2011-05-19 02:02:44
- 1. 獲取請求MVC查詢字符串
- 2. 如何在asp.net mvc中持續查詢字符串值?
- 3. 查詢字符串Jquery Ajax請求中的加密MVC 4
- 4. 如何在Spring MVC中請求完整的查詢字符串?
- 5. ASP.net MVC檢查查詢字符串參數對所有請求
- 6. GuzzlePHP請求查詢字符串
- 7. SQL - 查詢字符串請求
- 8. 調整Node的請求模塊中的查詢字符串/ URL
- 9. 將查詢字符串添加到NSURLSession的所有請求中
- 10. AJAX GET請求中查詢字符串的最大長度?
- 11. MVC在查詢字符串中追加「#」
- 12. Spring MVC能嚴格映射查詢字符串來請求參數嗎?
- 13. MVC的ActionResult和查詢字符串
- 14. 的ASP.NET Web API - 讀取查詢字符串/ FORMDATA每個請求
- 15. 請求包含查詢字符串的當前路由?
- 16. Android查詢字符串的webview url請求
- 17. 網站獲取奇怪查詢字符串的請求
- 18. 更改JavaScript請求的查詢字符串參數
- 19. 如何創建請求URL有查詢字符串的RewriteRule
- 20. 來自查詢字符串的請求值
- 21. 如何檢測到請求的url包含查詢字符串?
- 22. 發送的請求體參數而不是查詢字符串
- 23. AFNetworking:追加參數作爲PUT請求的查詢字符串
- 24. 什麼是BlazeDS請求的查詢字符串?
- 25. asp.Net +加密的查詢字符串請求不讀'+'號
- 26. Spring 3 MVC - 如何將表單轉換爲查詢字符串?
- 27. POST字符串中獲取400錯誤的請求Spring MVC中
- 28. mysql查詢字符串中不支持的字符
- 29. Kohana 3路由和查詢字符串
- 30. URL請求添加POST數據到查詢字符串
如果您向我們顯示您的控制器代碼,回答此問題可能會更容易。 – 2011-05-19 00:49:09
尊重,我的描述的哪一部分你不明白?如果您創建一個新的MVC項目,這是默認行爲。 – 2011-05-19 01:48:59