Я использую ASP.NET MVC (без движка Razor). У меня есть EditorTemplate, для правильной работы которого требуется скрипт. Я мог бы просто поместить сценарий в пользовательский элемент управления, но я не хочу, чтобы этот сценарий определялся несколько раз, когда EditorTemplate несколько раз присутствует на странице.
Я также не хочу размещать скрипт на странице, потому что это будет зависимостью, о которой потребитель (страница) не может легко узнать. Это рецепт ошибок в долгосрочной перспективе.
Я думаю, что решением было бы поместить этот код в ascx:
<% if (RequestState.IsEditorScriptRendered == null) { %>
RequestState.IsEditorScriptRendered = true;
<script>...</script>
<% } %>
К сожалению, похоже, что нет никакого состояния с временем жизни запроса. Как я могу сохранить информацию «IsEditorScriptRendered»? Есть ли лучший способ достичь желаемого результата?