0

我有一个快速编辑 jquery 对话框,允许我的用户更改一些客户详细信息。表单很棒,但是在表单提交后,我无法弄清楚如何关闭模式对话框并返回到仍然在后台的视图。

我在 quickedit 上的 http 帖子执行所有数据库更新等,但目前只返回 quickedit 表单的部分视图。我需要它来关闭模式并返回到调用对话框的页面(不重新加载它......),或者如果不可能的话,只是返回到模式对话框。

这是我的 http 邮政编码:

        [HttpPost, ActionName("QuickEdit")]
    public ActionResult QuickEdit(newUser usrdet)
    {
        db.Entry(usrdet).State = EntityState.Modified;
        db.SaveChanges();
        return PartialView(usrdet);
    }

代码原样返回更新的对象,但不在 jquery UI 模式中。

非常感谢任何帮助。

调用 ui 的 Javascript:

<script type="text/javascript">
$.ajaxSetup({ cache: false });

$(document).ready(function () {
    $(".openDialog").live("click", function (e) {
        e.preventDefault();
        $("<div></div>")
  .addClass("dialog")
  .attr("id", $(this).attr("dialog-id"))
  .appendTo("body")
  .dialog({
      title: $(this).attr("dialog-title"),
      close: function () { $(this).remove() },
      modal: true,
      width: 706,
      height: 600
  })
  .load(this.href);
    });

    $(".close").live("click", function (e) {
        e.preventDefault();
        $(this).closest(".dialog").dialog("close");
    });
});

4

1 回答 1

0

如果数据有效并且您可以保存编辑,我将返回一个新的部分视图,其中仅包含一些 javascript 代码来关闭对话框,如下所示:

[HttpPost, ActionName("QuickEdit")]
public ActionResult QuickEdit(newUser usrdet)
{
    if (ModelState.IsValid) {
        db.Entry(usrdet).State = EntityState.Modified;
        db.SaveChanges();
        return PartialView("CloseDialog");
    }
    return PartialView(usrdet);
}

和局部视图CloseDialog:

<script type="text/javascript">
    $(".dialog").dialog("close");
</script>

dialog您可以自定义操作/视图以传递对话框 html 元素的 id,或者像我的示例中那样仅依赖 css 类。

于 2012-08-16T07:27:41.647 回答