asp.net-mvc - net - view model mvc c#
¿Cómo cerrar una página ASP.NET MVC desde el controlador? (6)
Tengo una aplicación MVC de ASP.NET que abre una vista de "Solicitud" en una nueva ventana del navegador. Cuando el usuario envíe el formulario, me gustaría que la ventana se cierre. ¿Qué aspecto debería tener mi código de RequestController para cerrar la ventana después de guardar la información de la solicitud? No estoy seguro de lo que debería estar regresando la acción del controlador.
Como tal:
[HttpPost]
public ActionResult MyController(Model model)
{
//do stuff
ViewBag.Processed = true;
return View();
}
La vista:
<%if(null!=ViewBag.Processed && (bool)ViewBag.Processed == true){%>
<script>
window.close();
</script>
<%}%>
Esto funcionó para mí:
[HttpGet]
public ActionResult Done()
{
return Content(@"<body>
<script type=''text/javascript''>
window.close();
</script>
</body> ");
}
Esto me funcionó para cerrar la ventana.
Controlador:
return PartialView("_LoginSuccessPartial");
Ver:
<script>
var loginwindow = $("#loginWindow").data("kendoWindow");
loginwindow.close();
</script>
Parece que podría devolver una plantilla de vista casi vacía que simplemente tenía algo de javascript en el encabezado que simplemente ejecutó "window.close ()".
Podría devolver una Vista que tenga el siguiente javascript (o podría devolver un resultado de JavaScript) pero prefiero la primera.
public ActionResult SubmitForm()
{
return View("Close");
}
Ver para cerrar:
<body>
<script type="text/javascript">
window.close();
</script>
</body>
Aquí hay una forma de hacerlo directamente en su controlador, pero le aconsejo que no lo haga.
public ActionResult SubmitForm()
{
return JavaScript("window.close();");
}
Usando esto puedes cerrar la ventana así:
return Content("<script language=''javascript''>window.close();</script>");