2

この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>

PartialViewResult を私の AuthController に追加しました:

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

ただし、ログイン リンクをクリックしても何も起こりません。これを行うためのアドバイスや MVC 3 チュートリアルへのリンクをいただければ幸いです。

ありがとう!

4

1 に答える 1

1

URI が間違っています:

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

これはビューへの参照であり、アクションではありません。URI はアクションを参照する必要があります。また、JavaScript は ASP.NET の~構文を理解できません。<%: Url.Content("~/Auth/Auth/LoginView") %>おそらく、代わりに次のようなものが必要です。

将来、これらをデバッグする良い方法は、Firebug のネット パネルまたは Fiddler です。404 を返す AJAX 呼び出しが表示されるはずです。

于 2011-02-15T14:34:29.550 に答える