Login modal jQuery no ASP.Net MVC 3
-
14-11-2019 - |
Pergunta
Estou tentando conseguir isso http://blog.stevehorn.cc/2009/06/rendering-modal-dialog-with-aspnet-mvc.html para trabalhar com MVC 3.
Sou muito novo no ASP.Net MVC e comecei um projeto MVC 3 recentemente.Desejo exibir um formulário de login modal quando o usuário clicar no hiperlink Login em meu arquivo _Layout.cshtml:
<a href="#" id="LogIn">Log In</a>
Eu criei uma visualização de login no seguinte local Areas/Auth/Views/Auth/Login.cshtml
Adicionei o seguinte script ao meu arquivo _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>
E adicionei um PartialViewResult ao meu AuthController:
public PartialViewResult LoginView()
{
return PartialView("Login");
}
No entanto, nada acontece quando o link de login é clicado.Qualquer conselho ou link para um bom tutorial do MVC 3 sobre como fazer isso seria apreciado.
Obrigado!
Solução
Seu URI está errado:
"~/Areas/Auth/Views/Auth/Login"
Esta é uma referência a uma visão, não a uma ação.Seu URI precisa se referir a uma ação.Além disso, o JavaScript não entenderá o ASP.NET ~
sintaxe.Você provavelmente quer algo como <%: Url.Content("~/Auth/Auth/LoginView") %>
em vez de.
No futuro, uma boa maneira de depurar essas coisas é o painel de rede do Firebug ou o Fiddler.Você deverá ver a chamada AJAX retornando um 404.