Модальный вход в систему с помощью jQuery в ASP.Net MVC 3
-
14-11-2019 - |
Вопрос
Я пытаюсь понять это 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>
Я создал представление входа в систему в следующих областях расположения/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>
И добавил PartialViewResult в мой AuthController:
public PartialViewResult LoginView()
{
return PartialView("Login");
}
Однако при нажатии на ссылку для входа в систему ничего не происходит.Будем признательны за любые советы или ссылки на хороший учебник по MVC 3, как это сделать.
Спасибо!
Решение
Ваш URI неверен:
"~/Areas/Auth/Views/Auth/Login"
Это ссылка на представление, а не на действие.Ваш URI должен ссылаться на действие.Кроме того, JavaScript не поймет ASP.NET 's ~
синтаксис.Вы, вероятно, хотите что-то вроде <%: Url.Content("~/Auth/Auth/LoginView") %>
вместо.
В будущем хорошим способом отладки этих вещей будет сетевая панель Firebug или Fiddler.Вы должны увидеть, что вызов AJAX возвращает 404.