Comment fermer une ASP.NET la page MVC du contrôleur?
j'ai un ASP.NET application MVC qui ouvre une vue" Request " dans une nouvelle fenêtre de navigateur. Quand l'utilisateur soumet le formulaire, je voudrais que la fenêtre se ferme. À quoi doit ressembler mon code RequestController pour fermer la fenêtre après avoir sauvegardé les informations de la requête? Je ne suis pas sûr que l'action du contrôleur devrait revenir.
5 réponses
vous pouvez retourner une vue qui a le javascript suivant (ou vous pouvez retourner un résultat JavaScript) mais je préfère le premier.
public ActionResult SubmitForm()
{
return View("Close");
}
Vue de Près:
<body>
<script type="text/javascript">
window.close();
</script>
</body>
Voici un moyen de le faire directement dans votre Contrôleur, mais je vous le conseille
public ActionResult SubmitForm()
{
return JavaScript("window.close();");
}
Comme tel:
[HttpPost]
public ActionResult MyController(Model model)
{
//do stuff
ViewBag.Processed = true;
return View();
}
vue:
<%if(null!=ViewBag.Processed && (bool)ViewBag.Processed == true){%>
<script>
window.close();
</script>
<%}%>
on dirait que vous pourriez retourner un modèle de vue presque vide qui avait simplement du javascript dans l'en-tête qui vient de tourner la fenêtre".proche.")(
Cela a fonctionné pour moi pour fermer la fenêtre.
Contrôleur:
return PartialView("_LoginSuccessPartial");
Vue:
<script>
var loginwindow = $("#loginWindow").data("kendoWindow");
loginwindow.close();
</script>
en Utilisant cela, vous pouvez fermer la fenêtre comme ceci:
return Content("<script language='javascript'>window.close();</script>");