Javascript не работает в частичном представлении
эта проблема похожа на то что описано в выполнить Javascript внутри частичного представления в ASP.NET MVC
приведенный ниже фрагмент кода в индексе.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>
}
но когда я копирую и вставляю вышеуказанный код и соответствующие файлы скриптов в другое представление, а затем в индекс.cshtml, если я вызываю Html.Частичное (новое имя представления), автозаполнение не работает...
пожалуйста, дайте мне знать, как я могу решить это без много изменений...
2 ответов
нельзя использовать разделы в частичных представлениях. Они просто не работают. Поэтому вам придется сохранить @section JavaScript
в представлении, чтобы зарегистрировать скрипты, а затем отобразить частичное, которое будет содержать только разметку. Вы также можете написать пользовательские вспомогательные методы для достижения этого, как показано в ответ.
Как я знаю, частичное представление должно иметь ссылку на все скрипты, даже если вы уже ссылаетесь на него на странице master/layout. Я всегда создавал частичное представление (_Scripts.cshtml) и поместить в него все скрипты + ссылку на таблицу стилей. Затем я буду называть это частичное представление в каждом представлении:
@Html.Partial("_Scripts")
надеюсь, что это то, что вы хотите, спасибо :)