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!

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top