Inicio de sesión modal jQuery en ASP.Net MVC 3
-
14-11-2019 - |
Pregunta
Estoy tratando de conseguir esto http://blog.stevehorn.cc/2009/06/rendering-modal-dialog-with-aspnet-mvc.html para trabajar con MVC 3.
Soy bastante nuevo en ASP.Net MVC y recientemente comencé un proyecto MVC 3.Quiero mostrar un formulario de inicio de sesión modal cuando el usuario hace clic en el hipervínculo Iniciar sesión en mi archivo _Layout.cshtml:
<a href="#" id="LogIn">Log In</a>
Creé una vista de inicio de sesión en la siguiente ubicación Areas/Auth/Views/Auth/Login.cshtml
Agregué el siguiente script a mi archivo _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>
Y agregué un PartialViewResult a mi AuthController:
public PartialViewResult LoginView()
{
return PartialView("Login");
}
Sin embargo, no sucede nada cuando se hace clic en el enlace de inicio de sesión.Se agradecería cualquier consejo o enlace a un buen tutorial de MVC 3 sobre cómo hacer esto.
¡Gracias!
Solución
Tu URI es incorrecta:
"~/Areas/Auth/Views/Auth/Login"
Esta es una referencia a una vista, no a una acción.Su URI debe hacer referencia a una acción.Además, JavaScript no entenderá las funciones de ASP.NET. ~
sintaxis.Probablemente quieras algo como <%: Url.Content("~/Auth/Auth/LoginView") %>
en cambio.
En el futuro, una buena forma de depurar estas cosas es el panel de red de Firebug o Fiddler.Deberías ver que la llamada AJAX devuelve un 404.