2009-07-23 29 views
3

我的MVCContrib网格的内容来自强类型视图上的模型。发布帖子时,网格内容在返回控制器时不在模型对象中。我可以看到这是因为网格呈现为单元格中带有文本的表格。有什么我可以做的,以便发布帖子时,我发送到网格的列表数据回到帖子中?MVCContrib网格并使用模型绑定器回发

回答

2

您可以使用TempData来坚持这个信息服务器端。 TempData中的信息将持续一个请求。然而,我不太喜欢这个选项。

你不能从db重新填充模型吗?如果用户不更改信息,为什么您需要回发所有相同的未更改信息?只需从之前拿到的地方再次抓住它。

+0

你说得对。这是一个选项。在我看来,我应该至少能够将模型恢复到我发送它的状态。但是这就是表单提交的内容,而mvccontrib不会呈现“表单”控件。 – jlembke 2009-07-24 05:18:47

1

如果您想在模型序列化成网格时重新创建模型,您必须在网格内(或者在网格外)嵌入正确命名的表单元素,并且在包含按钮发回到您希望重新创建模型的操作。

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

如果您没有更好地理解您尝试解决的情况,很难指出您正确的方向。在这些情况下,通常的流程是 获取模型

  1. 生成页面
  2. 记录的页面
  3. 任何更改模型在 形式提交变更诉讼
  4. 得到再次模型
  5. 使用TryUpdate坚持从岗位的变化 到模型

如果您遇到性能问题(您已证明您的perf性能问题正确吗?你不是过早优化?),将它们放在它们出现的地方(即缓存你的数据访问),而不是按照它本来不应该的方式来弯​​曲MVC。