Как закрыть страницу ASP.NET MVC с контроллера? - PullRequest
20 голосов
/ 12 мая 2009

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

Ответы [ 6 ]

28 голосов
/ 12 мая 2009

Вы можете вернуть View, который имеет следующий javascript (или вы можете вернуть результат JavaScript), но я предпочитаю первый.

public ActionResult SubmitForm()
{
    return View("Close");
}

Просмотр для закрытия:

<body>
    <script type="text/javascript">
        window.close();
    </script>
</body>

Вот способ сделать это прямо в вашем контроллере, но я советую против этого

public ActionResult SubmitForm()
{
    return JavaScript("window.close();");
}
3 голосов
/ 06 февраля 2013

Вроде таких:

[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>
<%}%>
2 голосов
/ 12 мая 2009

Похоже, вы могли бы вернуть почти пустой шаблон View, в котором просто был какой-то javascript в заголовке, который просто запускал "window.close ()".

0 голосов
/ 29 ноября 2018

Это сработало для меня:

[HttpGet]
public ActionResult Done()
{
    return Content(@"<body>
                       <script type='text/javascript'>
                         window.close();
                       </script>
                     </body> ");
}
0 голосов
/ 13 декабря 2013

Это помогло мне закрыть окно.

Контроллер:

 return PartialView("_LoginSuccessPartial");

Вид:

<script>
   var loginwindow = $("#loginWindow").data("kendoWindow");
   loginwindow.close();
</script>
0 голосов
/ 01 ноября 2013

Используя это, вы можете закрыть окно следующим образом:

return Content("&lt;script language='javascript'>window.close();&lt;/script>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...