1

約 40 行の jquery を含むエディター テンプレートがあります。このスクリプトをブロックにドロップして、<asp:Content>すべての JavaScript をページ内の 1 つの場所に保持しようとしました。ただし、次のエラー メッセージcontent controls have to be top-level controls in a content page が表示されます

最終的な出力ページにスクリプトが点在しないようにする方法はありますか、または ASP.NET MVC テンプレート内で使用される JavaScript を格納するためのベスト プラクティスを誰かが推奨できますか? 現時点では、コードを別のファイルにプルしてマスター ページ内で参照することを考えていますが、これはすべてのページにプルされることを意味し、理想的ではありません。

前もって感謝します。

4

2 に答える 2

0

シヴァが言うように、ページの一番下が「理想」です。ただし、個別のファイルについては。ページからasp.net要素を参照しない限り、これは実用的です-つまり:

<asp:Content ContentPlaceHolderID="jsCode" ID="jsCode1" runat="server">
    <script type="text/javascript">
        $(document).ready(function() {
            getPoundsData();
        });

        function getPoundsData() {
            var id = $("#ID").val();
            var URL = '<%=Url.Action("GetPounds", "FundShareholder")%>';
            var params = { id: id };
            if (id != null)
                SendAjaxCache("#" + $("#ShareholderID option:selected").text() + " RSP#", URL, params, null, ListDataShareholderPounds);
        }

        function ListDataShareholderPounds(data) {
            if (data.length != 0) {
                $('#shareholderPounds').html("");
                $('#shareholderPounds').show();
                $('#shareholderPounds').html(data);
            }
        };

    </script>
</asp:Content>

次の点に注意してください。

var URL = '<%=Url.Action("GetPounds", "FundShareholder")%>';

js の一部です。「私たち」が行うことは、マスター ページの最下部にコンテンツ セクションを追加して、js を保持することです。ただし、これは ViewPage (aspx) オブジェクト内でのみ機能します。ascx ページは、マスター ページのコンテンツ セクションを「無視」します

現在、asp.net 参照を含む「部分的な」js ファイルを保存し、filter 属性を介してページ フローに挿入するプロセスのシステム化に取り組んでいます。これは初期段階ですが、このアプローチの良い点は、部分的な js がファイルとして扱われるため、そのページへの将来のアクセスのためにキャッシュされることです。

とにかく、それが私たちの現在のアプローチであり、のぞき見が asp.net オブジェクト参照を含む js を挿入するために同様のメカニズムを使用しているかどうかを発見することに興味があります。

乾杯...

[編集] - ここで、私が話しているアプローチについて説明します (これは私たちの最初のインスピレーションではありませんでしたが、非常に似ています。mvc ではなく Web フォームです) - http://www.west-wind.com /WebLog/posts/252178.aspxまたはこれは mvc です: http://poundingcode.blogspot.com/2009/12/injecting-javasript-into-aspnetmvc-with.html。最後に、この「検索」に影響を与えた記事を見つけました: ASP.NET MVC ルーティングとパスは js ファイルhttp://codepaste.net/p2s3poです

于 2010-09-28T08:13:55.950 に答える
0

JavaScript を別のファイルに保存しておき、必要な場所で参照すると、後でメンテナンスしやすくなります。また、すべてのスクリプトを 1 つのファイルに配置すると不要なスクリプトの読み込みが増えると思われる場合は、スクリプトが役立つ機能/モジュールなどの戦略に基づいてスクリプトを個別のファイルに分割し、代わりにそれらを参照してください。

また、ページの読み込みが速くなるように、常にページの下部にあるスクリプトを保持/参照するように言われました。

于 2010-09-28T07:56:09.180 に答える