Наконец-то у меня есть решение для этого, которое, кажется, работает надежно, по крайней мере, в 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, но только для одного полного запроса страницы.