У меня есть приложение ASP.NET MVC, которое открывает представление "Запрос" в новом окне браузера. Когда пользователь отправляет форму, я хотел бы закрыть окно. Каким должен быть мой код RequestController закрыть окно после сохранения информации о запросе? Я не уверен, что действие контроллера должно возвращаться.
Как закрыть страницу ASP.NET MVC с контроллера?
Ответ 1
Вы можете вернуть представление, в котором есть следующий javascript (или вы можете вернуть результат JavaScript), но я предпочитаю первый.
public ActionResult SubmitForm()
{
return View("Close");
}
Вид для закрытия:
<body>
<script type="text/javascript">
window.close();
</script>
</body>
Вот как это сделать прямо в вашем контроллере, но я советую против него
public ActionResult SubmitForm()
{
return JavaScript("window.close();");
}
Ответ 2
Подобно такому:
[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>
<%}%>
Ответ 3
Похоже, вы можете вернуть почти пустой шаблон View, в котором просто был javascript в заголовке, который только что запустил "window.close()".
Ответ 4
Это сработало для меня, чтобы закрыть окно.
Контроллер:
return PartialView("_LoginSuccessPartial");
Вид:
<script>
var loginwindow = $("#loginWindow").data("kendoWindow");
loginwindow.close();
</script>
Ответ 5
С помощью этого вы можете закрыть окно следующим образом:
return Content("<script language='javascript'>window.close();</script>");