【发布时间】:2010-10-25 14:54:32
【问题描述】:
我有一个 ASP.NET MVC 应用程序,它在新的浏览器窗口中打开一个“请求”视图。当用户提交表单时,我希望关闭窗口。保存请求信息后,我的 RequestController 代码在关闭窗口时应该是什么样子?我不确定控制器操作应该返回什么。
【问题讨论】:
标签: asp.net-mvc model-view-controller
我有一个 ASP.NET MVC 应用程序,它在新的浏览器窗口中打开一个“请求”视图。当用户提交表单时,我希望关闭窗口。保存请求信息后,我的 RequestController 代码在关闭窗口时应该是什么样子?我不确定控制器操作应该返回什么。
【问题讨论】:
标签: asp.net-mvc model-view-controller
您可以返回具有以下 javascript 的视图(或者您可以返回 JavaScript 结果),但我更喜欢前者。
public ActionResult SubmitForm()
{
return View("Close");
}
查看关闭:
<body>
<script type="text/javascript">
window.close();
</script>
</body>
这是一种直接在控制器中执行此操作的方法,但我建议不要这样做
public ActionResult SubmitForm()
{
return JavaScript("window.close();");
}
【讨论】:
像这样:
[HttpPost]
public ActionResult MyController(Model model)
{
//do stuff
ViewBag.Processed = true;
return View();
}
观点:
<%if(null!=ViewBag.Processed && (bool)ViewBag.Processed == true){%>
<script>
window.close();
</script>
<%}%>
【讨论】:
听起来您可以返回一个几乎为空的视图模板,该模板只是在标题中包含一些运行“window.close()”的 javascript。
【讨论】:
这对我有用:
[HttpGet]
public ActionResult Done()
{
return Content(@"<body>
<script type='text/javascript'>
window.close();
</script>
</body> ");
}
【讨论】:
您可以通过此代码关闭:
return Content(@"<script>window.close();</script>", "text/html");
【讨论】:
这对我关闭窗口很有用。
控制器:
return PartialView("_LoginSuccessPartial");
查看:
<script>
var loginwindow = $("#loginWindow").data("kendoWindow");
loginwindow.close();
</script>
【讨论】:
使用它你可以像这样关闭窗口:
return Content("<script language='javascript'>window.close();</script>");
【讨论】: