Question

J'essaye d'obtenir ça http://blog.stevehorn.cc/2009/06/Rendering-modal-dialog-with-aspnet-mvc.html pour travailler avec MVC 3.

Je suis assez nouveau chez ASP.NET MVC et j'ai commencé un projet MVC 3 récemment. Je souhaite afficher un formulaire de connexion modal lorsque l'utilisateur clique sur le connexion en hyperlien dans mon fichier _layout.cshtml:

<a href="#" id="LogIn">Log In</a>

J'ai créé une vue de connexion dans les zones de localisation suivantes / Auth / Views / Auth / Login.cshtml

J'ai ajouté le script suivant à mon fichier _layout.cshtml:

    <script type="text/javascript">
        $(document).ready(function () 
        {
            $("#LogIn").click(function (event) 
            {
                $.get( 
                      "~/Areas/Auth/Views/Auth/Login" ,
                      function (htmlResult) 
                      {
                        $("#LoginModal").remove(); //In case this is the second time they've requested the dialog.
                        $("#container").append(htmlResult);
                        $("#LoginModal").dialog();
                      }
                    );
            return false; //To keep the default behavior of the anchor tag from occuring.
});                
</script>

Et a ajouté un PartialViewResult à mon AuthController:

        public PartialViewResult LoginView()
    {
        return PartialView("Login");
    }

Cependant, rien ne se passe lorsque le lien de connexion est cliqué. Tout conseil ou lien vers un bon didacticiel MVC 3 sur cela serait apprécié.

Merci!

Était-ce utile?

La solution

Votre uri est faux:

"~/Areas/Auth/Views/Auth/Login"

Ceci est une référence à une vue, pas une action. Votre URI doit se référer à une action. De plus, JavaScript ne comprendra pas Asp.net ~ syntaxe. Tu veux probablement quelque chose comme <%: Url.Content("~/Auth/Auth/LoginView") %> Au lieu.

À l'avenir, une bonne façon de déboguer ces choses est le panneau net de Firebug ou le violoncule. Vous devriez voir l'appel Ajax renvoyer un 404.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top