2011-05-20 100 views
0

我有一个仪表板页面,有4个部分视图。 每个视图都有一个编辑链接,点击后会加载另一个模板。MVC3 ActionLink梦魇

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

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

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

回答

1

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

如此 - 每个仪表板上有4个谐音。所以作为一个选项 - 让你的主页有四个div。 在每个div中,使用Html.Partial来呈现您的视图。 每个局部视图都有自己的Ajax.BeginForm标签。 UpdateTargetId是父视图中的divs标识。我不是一个孩子需要知道其父母的名字更新的巨大粉丝,还有一些其他方式(一个选项是四个视图中的每一个真的是每个人的两个其他视图 - 一个包含表单和DIV被更新,然后像局部视图拨打电话:

每一个“父”局部视图例如具有

 

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

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

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

+0

我以前试过,它似乎没有工作。 – sekhar 2011-05-31 23:20:36

+0

做了什么之前..阿贾克斯?这肯定会和ajax一起工作......具体失败了么? – 2011-06-01 02:47:55

+0

它取而代之的内容。我在控制器上放置了一个断点。它确实返回了我返回的HTML,但从未在UI上呈现过它 – sekhar 2011-06-01 16:38:44