Подтвердить что ты не робот

Как закрыть страницу ASP.NET MVC с контроллера?

У меня есть приложение ASP.NET MVC, которое открывает представление "Запрос" в новом окне браузера. Когда пользователь отправляет форму, я хотел бы закрыть окно. Каким должен быть мой код RequestController закрыть окно после сохранения информации о запросе? Я не уверен, что действие контроллера должно возвращаться.

4b9b3361

Ответ 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("&lt;script language='javascript'>window.close();&lt;/script>");