0

ASP.Net MVCプロジェクトでは、ヘッダーとフッターを備えた従来の2列レイアウトのRazor組み込みの_layout.cshtmlを使用しています。アイデアは、レイアウトの右側の列にアプリケーションビューを表示し、コードを複製することなくサイト全体を一貫して表示することです...

問題は、ビューを呼び出し、@ RenderBody()を使用してレイアウトの右側の列にコンテンツをレンダリングするたびに、レイアウト全体が更新されることです。それは正常な動作ですか?

このRazorのレイアウトコンセプトには、サイト全体ではなくレンダリングされたビューコンテンツのみを更新する組み込みのメカニズムがありますか、それともjQuery Ajax呼び出しを行って、ビューコンテンツでdivを置き換える必要がありますか?

ありがとう

エティエンヌ

4

3 に答える 3

1

コンテンツを動的に切り替えたい場合は、ajaxを介してデータをロードしてから、サイトの右側の列を置き換える必要があります...Razorにはそれを行うための「自動モード」がありません。= P

この「アプローチ」を使用するプロジェクトがいくつかあります。ビューを(コントローラーで)部分ビューとしてレンダリングしてから、htmlを取得して必要な場所に配置します。

于 2012-10-02T13:10:31.420 に答える
0

そのページを呼び出すときに、@ RenderBody()の代わりにiframeを使用できます@ {Layout = null;}

    <ul>
        <li class="LoadContent" data-url="http://api.jquery.com/not-selector/">Jquery-not-selector</li>
        <li class="LoadContent" data-url="http://api.jquery.com/contents/">Jquery-contents</li>
    </ul>
    <iframe src="" width="80%" height="600" id='frameDemo'></iframe> ​


  $(document).ready(function () {
        $('.LoadContent').click(function () {
             $('#frameDemo').attr('src', $(this).data('url'));
        });
    });​

デモ

于 2012-10-02T13:10:48.190 に答える
0

MVCには、使用できるajaxメカニズムが組み込まれています。

http://msdn.microsoft.com/en-us/library/dd505086(v=vs.108).aspx

私の経験では、これは非常に単純な場合にのみ本当に役立ちます。私は通常、$。post()を使用することになります。

于 2012-10-02T13:10:49.533 に答える