Это довольно популярный вопрос, поэтому я опубликую свое решение. У меня была та же проблема, и хотя она не идеальна, я думаю, что она работает очень хорошо и не делает частичную зависимость от представления. Мой сценарий состоял в том, что действие было доступно самому, но также могло быть встроено в aa view - google map.
В моем _layout
у меня есть:
@RenderSection("body_scripts", false)
В моем index
view У меня есть:
@Html.Partial("Clients")
@section body_scripts
{
@Html.Partial("Clients_Scripts")
}
В моем представлении clients
у меня есть (все карта и ассоциативный html):
@section body_scripts
{
@Html.Partial("Clients_Scripts")
}
Мой Clients_Scripts
вид содержит javascript, который будет отображаться на странице
Таким образом, мой сценарий изолирован и может быть отображен на странице, где это необходимо, причем тэг body_scripts
отображается только в первом вхождении, что механизм просмотра бритвы находит это.
Это позволяет мне все разделять - это решение, которое хорошо работает для меня, у других могут быть проблемы с ним, но он исправляет дыры «по дизайну».