0

html + js コードの大きなチャンクがあります。目標は、特定のボタンをクリックしたときにのみロードして表示することなので、毎回プリロードする必要はありません。

通常、jquery/ajax を使用して部分ビューを動的に含めることができますが、私の知る限り、それにはコントローラーが必要です。このシナリオでは、データが静的であるため、コントローラーは必要ありません。

したがって、問題は、特定のイベント (ボタンのクリックなど) で、コントローラーを経由せずに部分的なビューを含めることは可能ですか?

私たちが試したのは、ajax リクエストに部分ビューのアドレスを与えることでした。しかし、それは役に立ちませんでした。

<div class="reportWindow"></div>

<script type="text/javascript">
    $("#feedback").click(function () {

        $.ajax({
            url: "@Url.Content("_Feedback")",
            type: 'GET',
            cache: false,
            success: function (result) {
                $("#reportWindow").html(result);
            }
        });
    });    
</script>
4

1 に答える 1

2

拡張子を持つ部分ビューcshtmlは依然として Razor ビューです。その中のコンテンツが静的であっても、サーバーはそれを読み取ってそのコンテンツを html に変換する必要があります (それがそのままコピーして送信することを意味する場合でも)戻る)

必要なのはhtmlファイルです。このファイルは、javascript または jQuery を使用して動的にロードできます。

$("#feedback").click(function () {
    $("#reportWindow").load('feedback.html'); 
});

これは引き続きサーバーに feedback.html を要求することに注意してください。通常、これはどのルートとも一致せず、IIS は feedback.html と呼ばれる静的ページを検索して要求を解決します。

于 2013-01-22T16:52:55.793 に答える