この問題は、 ASP.NET MVCの部分ビュー内でJavascriptを実行する で説明されているものと似ています。
Index.cshtmlの以下のコードは正常に機能しています...
<label for="locationOfSearch"> in :</label> @Html.TextBox("locationOfSearch")
<input type="submit" value="Search" style="background-color:Green"/>
@section JavaScript {
<script type="text/javascript">
$(document).ready(function () {
$("#locationOfSearch").autocomplete({
source: '@Url.Action("AutocompleteAsyncLocations")'
})
});
</script>
}
しかし、上記のコードとそれぞれのスクリプトファイルをコピーして別のビューに貼り付け、Html.Partial(新しいビュー名)を呼び出すとindex.cshtmlに貼り付けると、オートコンプリートが機能しません...
あまり変更せずに解決する方法を教えてください...
部分ビューでセクションを使用することはできません。それらは単に機能しません。したがって、スクリプトを登録し、マークアップのみを含むパーシャルをレンダリングするには、ビューに@section JavaScript
を保持する必要があります。 この回答 に示すように、これを実現するカスタムヘルパーメソッドを作成することもできます。
私が知っているように、部分ビューには、マスター/レイアウトページで既に参照している場合でも、すべてのスクリプトの参照が必要です。私がいつも行ったことは、部分ビュー(_Scripts.cshtml)を作成し、その中にすべてのスクリプトとスタイルシート参照を配置することです。次に、この部分ビューをすべてのビューで呼び出します。
@Html.Partial("_Scripts")
これがあなたが望むものであることを願っています、ありがとう:)