私は Razor ビュー エンジンで MVC 3 を使用しており、複数のビューからのスクリプトを$(document).ready();
マスター ページで集中的に定義された 1 つの関数に挿入したいと考えています。
私は次のことを試しました:
<script type="text/javascript">
$(document).ready(function () {
//OnLoad Script load area
'@RenderSection("DocumentReady", false)'
});
</script>
私のマスタービューでは、次のようになります。
@section DocumentReady{
alert('Document is ready!');
}
私の見解では、驚くことではありませんが、JavaScript がタグ内にないためにコンパイル エラーが発生します<script>
。
関数内で初期化スクリプトを実行する必要がある小さなビュー コントロールが多数ある場合は$(document).ready()
、それらをすべて 1 か所にまとめて保存しておくと便利です。
<script>
周囲のタグなしで、またコンパイルに影響を与えずに、マスター ビューに JavaScript を挿入する方法はありますか?
ベストアンサー1
レイアウト内の RenderSection 呼び出しを単一引用符で囲む必要はありません。
<script type="text/javascript">
$(document).ready(function () {
@RenderSection("DocumentReady", false)
});
</script>
ビュー内では:
@section DocumentReady {
alert('');
}
ただし、レイアウトにスクリプト セクションがあれば、おそらく読みやすくなります。
@RenderSection("Scripts", false)
ビュー内では:
@section Scripts {
<script type="text/javascript">
$(function() {
alert('');
});
</script>
}