JQuery Modal Connexion dans ASP.NET MVC 3
-
14-11-2019 - |
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!
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.