次のようなjavascript参照を含めたいです。
<script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script>
Razorビューがある場合、これをレイアウトに追加せずに含める適切な方法は何ですか(すべてではなく、単一の特定のビューでのみ必要です)
Aspxでは、コンテンツプレースホルダーを使用できます。mvcではaspxを使用し、Razorビューでは使用しない古い例を見つけました。
実装方法に応じて(スクリプトが必要な特定の場所がある場合)、@section
を_Layout
内に実装できます。これにより、構造を保持したままビュー自体から追加のスクリプトを追加できます。例えば.
<!DOCTYPE html>
<html>
<head>
<title>...</title>
<script src="@Url.Content("~/Scripts/jquery.min.js")"></script>
@RenderSection("Scripts",false/*required*/)
</head>
<body>
@RenderBody()
</body>
</html>
@model MyNamespace.ViewModels.WhateverViewModel
@section Scripts
{
<script src="@Url.Content("~/Scripts/jqueryFoo.js")"></script>
}
そうでなければ、あなたが持っているものは大丈夫です。出力されたビューと「インライン」であることを気にしない場合は、ビュー内に<script>
宣言を配置できます。
Razorビューエンジンを使用している場合は、_Layout.cshtmlファイルを編集します。フッターにある@ Scripts.Render( "〜/ bundles/jquery")をヘッダーセクションに移動し、必要に応じてjavascript/jqueryコードを記述します。
@Scripts.Render("~/bundles/jquery")
<script type="text/javascript">
$(document).ready(function () {
var divLength = $('div').length;
alert(divLength);
});
</script>
以下のようなクライアント側の検証を行いながら、asp.netで使用する方法のようなスクリプトタグを追加できます。
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<script type="text/javascript" src="~/Scripts/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
$(function () {
//Your code
});
</script>