MVC3 ActionLink噩梦

时间:2011-05-20 06:06:18

标签: asp.net-mvc-3 post html.actionlink

我有一个仪表板页面,其中有4个局部视图。 每个视图都有一个编辑链接,单击该链接时会加载另一个temaplate。

现在,新模板将保存并取消。当我点击取消时,我想加载旧视图,当点击保存时,我想保存模型并返回旧视图。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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


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

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

这里的关键是ajax表格。我知道我在这里没有包含太多代码 - 因为我相信你的帖子更像是一个概念性的问题 - 如果它没有意义我会发布特定的样本。