【问题标题】:Closing a Jquery Dialog after a Document is returned via ActionResult通过 ActionResult 返回文档后关闭 Jquery 对话框
【发布时间】:2013-06-08 16:19:53
【问题描述】:

我有一个用于向服务器传递一些信息的 JQuery 对话框。 ActionResult 方法然后生成一个文档。然后将其返回给浏览器。到目前为止一切顺利。

但是,我想在文档返回时关闭对话框。

【问题讨论】:

  • 你在用ajax吗?如果是这样,那么关闭文档可以在ajax的成功函数中完成。
  • 当你把 "ASP.NET MVC" 框架简单地称为 "MVC" 时,就像将 IE 称为 "the互联网”.
  • 你的意思是IE不是互联网? ;) 注意到并感谢您指出。

标签: jquery asp.net-mvc document actionresult


【解决方案1】:

如果你使用ajax调用你可以使用成功函数

$.ajax({
    type: "POST",
    url: 'url',      
    success: function (data) {
        close dialog here.
    }
})

如果你使用你的 mvc ajax 可以使用这个助手的成功功能

@Ajax.BeginForm("", new AjaxOptions { OnSuccess="close_dialog()"})

如果你在没有 ajax 的情况下提交表单,你可以发送一些消息来查看并关闭对话框,或者只是不打开它:)

 [HttpPost]       
    public ActionResult YourAction(UrModel model)
    {
        if (ModelState.IsValid)
        {
            //Use any stuff to send the message to View 
            ViewBag.close_dialog = true;
            ViewData["close_dialog"] = true;
            //or temp data or modelstate or somethins else.
        }
        return View(model);
    }

在视野中

<script type ="text/javascript">
@if (ViewBag.close_dialog)
{
    <text>
//javscript here
close_dialog();
    </text>
}

【讨论】:

  • 即使 ModelState 无效也会调用 OnSuccess。 Mvc 将“成功”视为 HTTP 200 OK,但我敢打赌,我们不会通过 http 状态来追逐它。真正定义“请求”是否“成功”的是验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 1970-01-01
相关资源
最近更新 更多