我有一个仪表板页面,它有 4 个部分视图。每个视图都有一个编辑链接,单击该链接会加载另一个模板。
现在当然新模板将具有保存和取消。单击取消时,我想加载旧视图,单击保存时,我想保存模型并返回到旧视图。
所有这些都必须是部分更新。我将如何实现这一目标。
首先,我使用 ajax 操作链接(使用 post)来返回一个日期时间字符串。它不是更新我的 div,而是将我重定向到不同的视图。MVC 非常困难。嗯……
我有一个仪表板页面,它有 4 个部分视图。每个视图都有一个编辑链接,单击该链接会加载另一个模板。
现在当然新模板将具有保存和取消。单击取消时,我想加载旧视图,单击保存时,我想保存模型并返回到旧视图。
所有这些都必须是部分更新。我将如何实现这一目标。
首先,我使用 ajax 操作链接(使用 post)来返回一个日期时间字符串。它不是更新我的 div,而是将我重定向到不同的视图。MVC 非常困难。嗯……
啊..一旦你建立了一种干净的做事方式,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 形式。我知道我在这里没有包含太多代码-因为我相信您的帖子更多是一个概念性问题-如果没有意义,我将发布特定示例。