Модальный вход в систему с помощью jQuery в ASP.Net MVC 3

StackOverflow https://stackoverflow.com/questions/5004267

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top