jQuery модальный вход в ASP.Net MVC 3 - PullRequest
2 голосов
/ 15 февраля 2011

Я пытаюсь заставить это 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.

Спасибо!

1 Ответ

1 голос
/ 15 февраля 2011

Ваш URI неверен:

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

Это ссылка на представление, а не на действие. Ваш URI должен ссылаться на действие. Кроме того, JavaScript не будет понимать синтаксис ASP.NET ~. Вы, вероятно, хотите что-то вроде <%: Url.Content("~/Auth/Auth/LoginView") %>.

В будущем хорошим способом отладки этих вещей будет сетевая панель Firebug или Fiddler. Вы должны увидеть вызов AJAX, возвращающий 404.

...