我正在努力让这个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教程的建议或链接都将不胜感激。
谢谢!
答案 0 :(得分:1)
您的URI错误:
"~/Areas/Auth/Views/Auth/Login"
这是对视图的引用,而不是动作。您的URI需要引用操作。此外,JavaScript不会理解ASP.NET的~
语法。你可能想要<%: Url.Content("~/Auth/Auth/LoginView") %>
之类的东西。
将来,调试这些东西的好方法是Firebug的网络面板或Fiddler。您应该看到AJAX调用返回404。