我想我错过了关于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