3

ビューにJavaScriptを登録しようとしていますが、問題が発生しているようです。私のマスターページの下部には、次のものがあります。

@(
    Html.Telerik().ScriptRegistrar()
        .OnDocumentReady(@<text>
            // Open the hidden window when the feedback-link is clicked
            $('#feedback-link').click(function(e) {
                e.preventDefault();
                $('#FeedbackWindow').data('tWindow').center().open();
            });
        </text>)
)

私のビューでは、ビュー固有のJavaScriptが必要なので、次のようになります。

@(Html.Telerik().ScriptRegistrar().OnDocumentReady(
    @<text>
        // Upon contact selection change, update the contact sidebar summary
        $('#contactlist').change(function() {
            alert('Selected id' + $(this).val());
        });
    </text>)
)

残念ながら、これにより、ビューのjavascriptがMVCビューと、最終ページがレンダリングされるときのマスターページの両方で宣言されなくなります。スクリプトを1回だけ登録するようにするにはどうすればよいですか?

4

1 に答える 1

4

フォーラムの返信で言ったように、ScriptRegistrarは2回出力されています。@()Razor式はその内容を出力しますが@{ }、実行されます。あなたの場合@{ }、特定のスクリプトに使用する必要があります。

@{ Html.Telerik().ScriptRegistrar().OnDocumentReady(
    @<text>
        // Upon contact selection change, update the contact sidebar summary
        $('#contactlist').change(function() {
            alert('Selected id' + $(this).val());
        });
    </text>);
}

@{ }また、ブロックにはセミコロンが必要であることに注意してください。

于 2011-05-03T08:53:48.197 に答える