我想我錯過了關於MVC表單工作原理的一些基礎知識。我在我的主頁上有一個搜索表單,其中有五六個不同的字段供用戶搜索。所以我有這個發佈到我的結果行動就好了。結果操作如下所示:MVC 3表單發佈並保留模型數據
[HttpPost]
public ActionResult Results(SearchModel model)
{
ResultsModel results = new ResultsModel();
results.ResultList = SearchManager.Search(model).ToList();
return View("Results", results);
}
我簡化了上述方法,但這個想法是相同的。所以這一切都很好。我的結果頁面顯示了結果的列表,我的用戶是在以下網址:
所以......現在我想要做的事很常見。結果頁面上有兩個下拉列表。 「排序」和「每頁結果數量」。我該怎麼做,並將全套模型數據發送回控制器,以便我可以使用新參數進行查詢?實際上,SearchModel類擁有大約60個不同的字段。潛在的所有數據都可以包含在模型中。你如何堅持到一個頁面「回發」?
同樣的問題讓我對如何進行分頁以及有點難過。我的分頁鏈接會去一個網址,如:
但是,假設我們在響應GET請求(我不想在查詢字符串數據的60場)和模型數據在GET請求之間傳遞,我知道情況並非如此。如上所述,我想我錯過了一些關於MVC 3,模型和表單帖子的基礎知識。
任何人都可以幫助我指出正確的方向嗎?我很樂意根據需要編輯/更新這篇文章,以澄清事情。
編輯:我也想指出,我想避免將視圖模型存儲在Session變量中。這個網站最終最終會在一個網絡農場中實現負載均衡,我真的想盡可能避免使用Session。但是,如果它是唯一的選擇,我將配置另一個會話狀態提供程序,但我不想。
嗯,我想聽聽一些關於這方面的專家意見,但也有可能讓我有選擇直接或間接地通過TempData掌握Session。其他選項是在結果頁面上有大量隱藏字段。 – 2011-05-01 15:54:55
對不起,那個帶隱藏字段的部分是無稽之談。最簡潔的方法是使用tempdata。 – 2011-05-01 16:06:19
它仍然感覺像2001 :( – andrew 2012-06-01 00:15:01