在ASP.Net MVC 3中登录jQuery Modal

时间:2011-02-15 13:31:44

标签: asp.net-mvc-3 jquery-ui-plugins

我正在努力让这个http://blog.stevehorn.cc/2009/06/rendering-modal-dialog-with-aspnet-mvc.html与MVC 3合作。

我是ASP.Net MVC的新手,最近开始了一个MVC 3项目。我想在用户点击_Layout.cshtml文件中的登录超链接时显示模态登录表单:

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

我在以下位置创建了一个登录视图Areas / Auth / Views / Auth / Login.cshtml

我已将以下脚本添加到我的_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>

并在我的AuthController中添加了一个PartialViewResult:

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

但是,单击登录链接时没有任何反应。任何关于这样做的好MVC 3教程的建议或链接都​​将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

您的URI错误:

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

这是对视图的引用,而不是动作。您的URI需要引用操作。此外,JavaScript不会理解ASP.NET的~语法。你可能想要<%: Url.Content("~/Auth/Auth/LoginView") %>之类的东西。

将来,调试这些东西的好方法是Firebug的网络面板或Fiddler。您应该看到AJAX调用返回404。