MVCContrib网格并使用模型绑定器回发

时间:2009-07-23 23:57:07

标签: asp.net-mvc mvccontrib model-binding model-binders

我的MVCContrib网格的内容来自强类型视图上的模型。制作帖子时,网格的内容在返回控制器时不在模型对象中。我可以看到这是因为网格呈现为单元格中包含文本的表格。有什么我可以这样做,以便当帖子发生时,我发送到网格的列表数据会回到帖子中吗?

2 个答案:

答案 0 :(得分:2)

您可以使用TempData来保留此信息服务器端。 TempData中的信息将持续一个请求。不过,我真的不喜欢这个选项。

你能否从数据库中重新填充你的模型?如果用户没有更改信息,为什么需要回发所有相同的未更改信息?从你以前的地方再次抓住它。

答案 1 :(得分:1)

如果要在将模型序列化到网格中时重新创建模型,则必须在网格中(或者可能在网格外部)中嵌入正确命名的表单元素,并且与包含按钮的形式相同。回发到您希望重新创建模型的操作。

虽然这是可行的,但你实际上是在重新创建__VIEWSTATE,这使得使用MVC失去了很多乐趣(阅读“这是一个丑陋的黑客,你应该卸载你的IDE甚至想到它”。)

如果没有更好地了解您想要解决的情景,很难指出正确的方向。这些情况下通常的工作流程是 得到模型

  1. 生成页面
  2. 记录对模型的任何更改 页面上的表格
  3. 将更改提交给操作
  4. 再次获得模型
  5. 使用TryUpdate来保留更改 从帖子到模特
  6. 如果你遇到了性能问题(你已经证明你有一个性能问题吗?你没有过早优化?),在它们发生的地方解决它们(即在你的数据访问中缓存),而不是弯曲MVC in它真的不应该是。