【问题标题】:MVC3 ActionLink nightmareMVC3 ActionLink 噩梦
【发布时间】:2011-05-20 06:06:18
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    @using (Ajax.BeginForm("action","controller", new AjaxOptions() { UpdateTargetId = "divAddressEdit", InsertionMode = InsertionMode.Replace }){ @Html.Partial(....) }

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

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

    【讨论】:

    • 之前做了什么.. ajax?这肯定会与 ajax 一起工作......具体失败了什么?
    • 它不会替换内容。我在控制器上放了一个断点。它确实返回了我返回的 html,但从未在 UI 上呈现它
    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 2020-03-14
    • 2010-11-13
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多