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.

19
demandé sur gfrizzle 2009-05-12 20:46:15

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();");
}
26
répondu David 2013-02-06 09:33:13

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>
<%}%>
3
répondu Captain Kenpachi 2013-02-06 09:40:30

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.")(

2
répondu womp 2009-05-12 16:50:17

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>
0
répondu Greg0 2013-12-13 15:13:02

en Utilisant cela, vous pouvez fermer la fenêtre comme ceci:

return Content("&lt;script language='javascript'>window.close();&lt;/script>");
-1
répondu Hemant 2013-11-01 07:36:31