0

我有一个仪表板页面,它有 4 个部分视图。每个视图都有一个编辑链接,单击该链接会加载另一个模板。

现在当然新模板将具有保存和取消。单击取消时,我想加载旧视图,单击保存时,我想保存模型并返回到旧视图。

所有这些都必须是部分更新。我将如何实现这一目标。

首先,我使用 ajax 操作链接(使用 post)来返回一个日期时间字符串。它不是更新我的 div,而是将我重定向到不同的视图。MVC 非常困难。嗯……

4

1 回答 1

1

啊..一旦你建立了一种干净的做事方式,MVC 就很简单:)

所以 - 每个仪表板都有 4 个部分。因此,作为一种选择 - 让您的主页有四个 div。在每个 div 中,使用 Html.Partial 来呈现您的视图。每个局部视图都有自己的 Ajax.BeginForm 标记。UpdateTargetId 是父视图中的 div id。我不是一个孩子需要知道其父母的名字来更新的忠实粉丝,还有其他一些方法(一个选项是四个视图中的每一个实际上是每个视图的两个其他视图 - 一个包含表单和 div 更新,然后调用部分视图,如:

每个“父”部分视图都有例如

<div id='divAddressEdit'>
@using (Ajax.BeginForm("action","controller", new AjaxOptions() { UpdateTargetId = "divAddressEdit", InsertionMode = InsertionMode.Replace }){
@Html.Partial(....)
}
</div>

让我们假设您使用第一个选项,其中每个部分视图都包含自己的 ajax 表单。所以 - 当用户保存时 - 好的.. ajax 表单发回,然后 RedirectsToAction() 并再次呈现新内容。单击取消时,会发生同样的事情 - 表单发布并且您重新加载原始信息。

这里的关键是 ajax 形式。我知道我在这里没有包含太多代码-因为我相信您的帖子更多是一个概念性问题-如果没有意义,我将发布特定示例。

于 2011-05-30T05:53:48.860 回答