Tengo una aplicación ASP.NET MVC que abre una vista de "Solicitud" en una nueva ventana del navegador. Cuando el usuario envía el formulario, me gustaría que se cierre la ventana. ¿Cómo debería ser mi código RequestController para cerrar la ventana después de guardar la información de la solicitud? No estoy seguro de qué debería devolver la acción del controlador.¿Cómo cierras una página ASP.NET MVC desde el controlador?
Respuesta
Puede devolver una Vista que tenga el siguiente javascript (o podría devolver un resultado de JavaScript) pero yo prefiero la anterior.
public ActionResult SubmitForm()
{
return View("Close");
}
Ver para Close:
<body>
<script type="text/javascript">
window.close();
</script>
</body>
Aquí es una manera de hacerlo directamente en el controlador pero desaconsejarla
public ActionResult SubmitForm()
{
return JavaScript("window.close();");
}
Parece que podría devolver un casi vacío Ver la plantilla que simplemente tenía algo de javascript en el encabezado que acaba de ejecutar "window.close()".
Como ejemplo:
[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>
<%}%>
El uso de este puede cerrar la ventana como esta:
return Content("<script language='javascript'>window.close();</script>");
Para mí, esto acaba de devolver el script como una cadena y lo muestra, no ejecutarlo. –
return Content (""); –
Esto funcionó para mí para cerrar la ventana.
controlador:
return PartialView("_LoginSuccessPartial");
Vista:
<script>
var loginwindow = $("#loginWindow").data("kendoWindow");
loginwindow.close();
</script>
- 1. ¿Cómo cierras un jQuery Simplemodal?
- 2. ¿Cómo PUESO datos de un controlador MVC asp.net a una página ASP no MVC?
- 3. ASP.NET MVC: Controlador simulado.Url.Action
- 4. Redirigir a un URI externo desde el controlador ASP.NET MVC
- 5. cómo acceder a scriptData desde uploadify en asp.net Controlador MVC
- 6. asp.net controlador genérico mvc
- 7. ASP.NET MVC HTML.AntiForgeryToken() con múltiples solicitudes AJAX desde una página
- 8. Devolver diferentes vistas desde el controlador MVC
- 9. página ASP.NET MVC/subpágina enrutamiento
- 10. ASP.NET-MVC. ¿Cómo obtener el nombre del controlador desde una url?
- 11. pase el diccionario al controlador asp.net mvc
- 12. Deshabilitar condicionalmente el controlador MVC de ASP.NET
- 13. Devolver objeto JSON desde una página ASP.NET
- 14. Devolver JSON desde un método JsonResult en el controlador MVC
- 15. ASP.NET: ¿Cómo acceder a la sesión desde el controlador?
- 16. ASP.NET MVC Controlador Dependencias (StructureMap)
- 17. ¿Cómo crea Ninject el controlador en ASP.NET MVC?
- 18. Diseño de acciones del controlador ASP.NET MVC
- 19. Cómo redirigir a una acción de controlador desde un método JSONResult en ASP.NET MVC?
- 20. ASP.NET MVC: ¿Es una mala idea devolver diferentes vistas desde una sola acción del controlador?
- 21. ¿Cómo pruebo el método OnActionExecuting de mi controlador asp.net-mvc?
- 22. Retorno JSON o vista desde el controlador MVC de Spring
- 23. ¿Cómo implemento una página intersticial "cargando ..." en ASP.NET MVC?
- 24. Cómo devolver JSON desde el controlador de MVC WEB API
- 25. mejor forma de encontrar el nombre del controlador desde la vista de la página maestra en asp.net mvc
- 26. Asp.Net Mvc - Cómo tener un "controlador" en la vista compartida
- 27. Asp.Net formulario MVC, con parámetros desconocidos para el controlador
- 28. ASP.Net MVC 3.0 Ajax.BeginForm está redirigiendo a una página?
- 29. Ciclo de vida del controlador ASP.NET MVC
- 30. ASP.NET MVC: devolver el archivo de texto sin formato para descargar desde el método de controlador
curioso: ¿por qué le aconsejaría en contra de la solución de controlador de sólo? – gfrizzle
Está manipulando la interfaz de usuario al cerrar una ventana. No parece ser una responsabilidad del controlador. – womp
Intenté devolver el JavaScript y no funciona. Solo muestra "window.close();" en la pantalla. Leí en otro lado que deberías llamar a esta acción usando Ajax pero no he podido probarlo. Solo dando la noticia. – Aries51