我有一個頁面包含一個帶有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. Asp.net MVC 3全局查詢字符串?
- 7. 查詢字符串從BeginForm在MVC 3
- 8. 持續請求symfony2中的數據庫字符串失敗?
- 9. Ajax請求使用查詢字符串
- 10. Mojolicious websocket請求查詢字符串
- 11. GuzzlePHP請求查詢字符串
- 12. 從查詢字符串拆分請求
- 13. 查詢字符串htaccess塊請求
- 14. Node.js beginner-請求無查詢字符串
- 15. SQL - 查詢字符串請求
- 16. Spring-MVC ::如何將請求參數(或)查詢字符串值傳遞給其他後續請求?
- 17. Laravel 3查詢字符串
- 18. 如何在MVC 4的請求中獲取查詢字符串變量?
- 19. 請查詢字符串
- 20. 調整Node的請求模塊中的查詢字符串/ URL
- 21. 請求Aspx.Page中的查詢字符串不起作用
- 22. 在查詢字符串中使用分號的jquery ajax請求?
- 23. AJAX GET請求中查詢字符串的最大長度?
- 24. 將查詢字符串添加到NSURLSession的所有請求中
- 25. 在ASP.NET MVC中查詢字符串被縮短3
- 26. MVC在查詢字符串中追加「#」
- 27. 在上下文中解碼查詢字符串。請求
- 28. 在Python中使用URL查詢字符串構造請求
- 29. 刪除查詢字符串,並從index.php的請求的URI
- 30. Spring MVC能嚴格映射查詢字符串來請求參數嗎?
如果您向我們顯示您的控制器代碼,回答此問題可能會更容易。 – 2011-05-19 00:49:09
尊重,我的描述的哪一部分你不明白?如果您創建一個新的MVC項目,這是默認行爲。 – 2011-05-19 01:48:59