两个分部视图 (ajax) 的相同模型实例



这是发生的情况:

  1. 部分视图 A 和 B 显示相同的模型
  2. 视图 A 通过 Ajax 更改数据(使用 Ajax.BeginForm
  3. 视图 A 重新渲染自身(控制器从数据库中获取更新的模型)
  4. 现在我们还必须重新渲染视图 B,因为数据已更改,对吗?
  5. 我们再次从数据库中获取更新的模型并重新渲染视图 B

如何防止重新查询数据库?也许在会话中缓存模型实例?

什么是"正确"的方法?

<!--works great when the page is rendered
    via postback but what about Ajax?--!>
<div>
@Html.Partial(@ViewA", MyModelInstance)
@Html.Partial(@ViewB", MyModelInstance)
</div>

您能否创建一个同时包含 AB 的新分部视图 C。每当模型更改时,您都必须调用返回视图 C 的操作。

更新:

我看到的另一个简单解决方案是当视图 A 更新模型而不是重新渲染视图时,通过 AJAX 获取更新的模型,并通过 javascript 更新 HTML 部分。如果你使用的是jquery,你可以使用模板插件来非常轻松地更新html。通过这种方式,您可以避免再发出一个不必要的请求来更新另一个视图 B

最新更新