скрипт в редакторе бритвы mvc - PullRequest
5 голосов
/ 27 января 2011

Я использую шаблон редактора, я показал частичный код ниже.Тег script повторяется для каждой строки, отображаемой при частичном просмотре.

Есть ли способ добавить тег script в заголовок страницы или, по крайней мере, включить его в страницу только один раз?

Мне бы хотелось, чтобы код в частичном представлении был именно там, где он действительно принадлежит.


@* DisplayTemplates/contact.cshtml *@
@model Online.Web.Contacts.Contact

<script id="xxx">
  stuff here.
</script>

<tr>
   <td>@Html.EditorFor(x => x.FirstName)</td>
</tr>

Ответы [ 3 ]

2 голосов
/ 27 января 2011

Вы можете попробовать это:

@model IEnumerable<Online.Web.Contacts.Contact>
<script id="xxx">
  stuff here.
</script>
@Html.EditorForModel()

, а затем другой шаблон редактора для одного контакта:

@model Online.Web.Contacts.Contact
<tr>
   <td>@Html.EditorFor(x => x.FirstName)</td>
</tr>
0 голосов
/ 28 ноября 2011

Наконец-то у меня есть решение для этого, которое, кажется, работает надежно, по крайней мере, в ASP.NET MVC3.Вот выдержка из моего шаблона редактора адресов:

@if(!Context.Items.Contains("AddressScriptsDone"))
{
    Context.Items.Add("AddressScriptsDone", "true");
    <script type="text/javascript" src="@Url.Content("~/Scripts/Address.js?" + _Config.WebAppVersion)"></script>
}

Context.Items, кажется, сделаны для этой цели.Он сохраняется при нескольких вызовах одного и того же EditorTemplate, но только для одного полного запроса страницы.

0 голосов
/ 27 января 2011

Хм.Это мой 2c, но если сценарий не должен повторяться, то шаблон не подходит?

Как насчет использования Html Helper

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...