J'ai une application ASP.NET MVC qui ouvre une vue "Demande" dans une nouvelle fenêtre de navigateur. Lorsque l'utilisateur soumet le formulaire, j'aimerais que la fenêtre se ferme. À quoi devrait 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 de ce que l'action du contrôleur devrait retourner.Comment fermez-vous une page ASP.NET MVC à partir du contrôleur?
Répondre
Vous pourriez 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");
}
Voir pour Close:
<body>
<script type="text/javascript">
window.close();
</script>
</body>
Voici une façon de le faire directement dans votre contrôleur, mais je vous conseille contre
public ActionResult SubmitForm()
{
return JavaScript("window.close();");
}
On dirait que vous pourriez retourner un presque vide Voir le modèle qui avait simplement du javascript dans l'en-tête qui venait de lancer "window.close()".
Comme par exemple:
[HttpPost]
public ActionResult MyController(Model model)
{
//do stuff
ViewBag.Processed = true;
return View();
}
La vue:
<%if(null!=ViewBag.Processed && (bool)ViewBag.Processed == true){%>
<script>
window.close();
</script>
<%}%>
En utilisant cela, vous pouvez fermer la fenêtre comme ceci:
return Content("<script language='javascript'>window.close();</script>");
Pour moi, cela vient de retourner le script sous forme de chaîne et l'afficher, pas l'exécuter. –
return Content (""); –
Cela a fonctionné pour moi de fermer la fenêtre.
Controller:
return PartialView("_LoginSuccessPartial");
Vue:
<script>
var loginwindow = $("#loginWindow").data("kendoWindow");
loginwindow.close();
</script>
- 1. Rediriger vers l'URI externe à partir du contrôleur ASP.NET MVC
- 2. ASP.NET MVC - Le paramètre du contrôleur n'est pas collecté à partir du formulaire?
- 3. ASP.NET MVC: renvoi du fichier texte brut à télécharger à partir de la méthode du contrôleur
- 4. ajouter un élément à l'application du contrôleur dans asp.net mvc
- 5. Comment appeler l'action du contrôleur à la page charge dans asp.net mvc
- 6. Propriétaire CreateMailMessage de MailDefinition à partir de ASP.Net Contrôleur MVC
- 7. Comment câbler du code commun à partir d'un contrôleur de base dans ASP.NET MVC
- 8. ASP.NET-MVC. Comment obtenir le nom du contrôleur à partir d'une URL?
- 9. ASP.NET MVC - Action en cours à partir du code du contrôleur?
- 10. Passer plusieurs ensembles de résultats à une vue à partir d'un contrôleur dans ASP.NET MVC?
- 11. Comment valider à partir du contrôleur
- 12. Afficher l'alerte javascript de l'action du contrôleur dans asp.net mvc
- 13. Routage page/sous-page ASP.NET MVC
- 14. Définition des propriétés d'espace réservé à partir du contrôleur?
- 15. Unité test d'une action du contrôleur Asp.net MVC
- 16. Comment ajouter du JavaScript à une vue ASP.NET MVC?
- 17. asp.net MVC - Comment faire une page principale/détaillée
- 18. Comment acheminer des images à l'aide du routage ASP.Net MVC?
- 19. asp.net MVC vue partielle contrôleur action
- 20. Contrôleur d'instanciation .NET MVC à l'intérieur d'un autre contrôleur
- 21. Fournir des commentaires à afficher à partir du contrôleur
- 22. Comment ouvrir une nouvelle page à partir du code derrière?
- 23. Cache Asp.net Mvc Page d'accueil
- 24. Comment utiliser les paramètres facultatifs dans un contrôleur ASP.NET MVC
- 25. Comment envoyer un fichier au navigateur à l'aide de l'action du contrôleur ASP.NET MVC?
- 26. asp.net mvc paramètre de la page à une vue partielle
- 27. Surveillance du fil asp.net à partir d'une autre page
- 28. Comment obtenir User.Identity.Name à partir d'un contrôleur?
- 29. Vues imbriquées - comment accéder à partir du contrôleur?
- 30. ASP.Net MVC ViewUserControl avec le contrôleur utilisant MVC 1.0
curieux: pourquoi vous conseiller contre la solution de contrôleur uniquement? – gfrizzle
Vous manipulez l'interface utilisateur en fermant une fenêtre. Cela ne semble pas être une responsabilité du contrôleur. – womp
J'ai juste essayé de retourner le JavaScript et cela ne fonctionne pas. Il affiche seulement "window.close();" sur l'écran. J'ai lu ailleurs que vous devriez appeler cette action en utilisant Ajax mais je n'ai pas pu le tester. Je donne juste la tête haute. – Aries51