0

私はasp.net MVC 3アプリケーションに取り組んでおり、次のようなセクションを持つレイアウトページがあります:

   <div class="rt-block">
                                <div id="rt-mainbody">
                                    @if (IsSectionDefined("BodyTitle"))
                                    {
                                        <div class="rt-headline">
                                            <h1 class="rt-article-title">
                                                @RenderSection("BodyTitle", false)
                                            </h1>
                                        </div>   
                                    }
                                    <div class="clear">
                                    </div>
                                    <div>
                                        @RenderBody()
                                    </div>
                                </div>
                            </div>

My View では、セクションを次のように定義しています。

@section BodyTitle {
    <span>Verify</span> Your Identity
}

partail view here

このビューは、リンクのクリックに応じて 2 つの部分ビューのいずれかを読み込みます。

1 つの部分ビューが読み込まれると、別の部分ビューが読み込まれると別のテキストが必要なセクションに別のテキストが表示されます。部分ビューの変更時にセクションの内容を変更するにはどうすればよいですか?

セクションを部分ビューに移動しようとしましたが、その場合、まったくロードされません。レイアウト ビューで宣言されているセクションを部分ビューで定義することはできませんか?

提案してください

4

1 に答える 1

0

部分ビューでセクションを定義することはできません。これらはメイン ビューで定義する必要があります。したがって、基本的に必要なのは、リンクがクリックされたときに DOM の 2 つの異なる部分を更新することです。これを実現する方法の 1 つは、部分ビューをコントローラー アクション内の文字列にレンダリングし、2 つのプロパティと対応する部分コンテンツを含む JSON 結果を返すことです。

return Json(new
{
    partialHtml = RenderPartialViewToString("_SomePartial"),
    sectionHtml = RenderPartialViewToString("_SomeSection")
});

その後:

$.ajax({
    url: '...',
    type: 'POST',
    success: function(result) {
        // first update the partial
        $('#partialContainerId').html(partialHtml);

        // now update the section
        $('.rt-article-title').html(sectionHtml);
    }
});

パーシャル内のセクションの内容を外部化できます。

于 2012-10-04T09:58:46.390 に答える