Я рассмотрел ряд вопросов, подобных Как добавить script в частичном представлении в MVC4? и MVC4 частичное представление javascript, связанное с выпуском, и я все еще пытаюсь понять архитектуру ASP.NET MVC, когда речь заходит о конкретном представлении script. Кажется, ответ другим, которые пытались включить script в свои частичные представления MVC4, - это поставить script на более высокий уровень. Но некоторые script не могут быть перемещены на более высокий уровень, где он будет работать более глобально. Например, я не хочу запускать script, который применяет привязки данных knockout.js для модели представления, элементы управления которой не загружаются. И я не хочу запускать целую кучу script для целой кучи представлений, которые не активны при каждом загрузке страницы.
Итак, я начал использовать блоки @Section Script
для просмотра в своих представлениях .vbhtml
, чтобы включить script, специфичный для представления. Однако, как отмечают другие, это не работает в частичном представлении. Я прототипирую нашу архитектуру, чтобы понять, что мы можем и чего не можем сделать здесь. Я хотел бы думать, что в некоторых случаях я мог бы использовать представление как частичное представление и наоборот. Но когда вы пытаетесь использовать как частичный вид, блок @Section Script
не отображает. Мне удалось получить всю мою модель представления script, определенную глобально, таким образом, что мне нужно только запустить одну строку кода для создания и привязки модели представления, но мне по-прежнему нужно, чтобы одна строка кода запускалась только тогда, когда определенное представление активен. Где я могу соответствующим образом добавить эту строку кода в частичное представление?
ko.applyBindings(window.webui.inventoryDetailViewModel(ko, webui.inventorycontext));
Я иду по правильному пути здесь? Это правильный способ архивирования приложения MVC?
Изменить. Этот вопрос очень тесно связан с моей проблемой и включает в себя значительную часть моего ответа: Можете ли вы назвать ko.applyBindings для привязки частичного смотреть?