質問

これを取得しようとしています 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>
.

とmy authControllerにDistributeViewResultを追加しました:

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

しかし、ログインリンクをクリックすると何も起こりません。これを行うことについての良いMVC 3チュートリアルへのアドバイスやリンクは、理解されます。

ありがとう!

役に立ちましたか?

解決

あなたのURIが間違っている:

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

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

将来的には、これらのことをデバッグするための良い方法は、Firebugのネットパネルまたはフィドラーです。Ajax呼び出しが404を返すのを見るべきです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top