Я пытаюсь написать общий «menu.ascx» usercontrol в Asp.Net MVC, который будет генерировать правильно отформатированное HTML-меню для моего приложения. Меню создается на основе содержимого в базе данных и серии разрешений ресурсов ... которые передаются в PartialView через атрибут в ViewModel.Как узнать, используется ли OutputCache для данного элемента управления?
Имеет смысл использовать директиву OutputCache для элемента управления menu.ascx, чтобы ограничить количество обращений к базе данных и файлам ресурсов. Мое намерение состоит в том, чтобы пометить директиву OutputCache с атрибутами VaryByParam = none и VaryByCustom, реализуя пользовательский поиск безопасности в global.asax ...
Мой вопрос: как узнать, когда OutputCache для menu.ascx собирается использовать, чтобы мы могли пропустить операции выборки данных при построении ViewModel в контроллере?
Некоторые образцы UserControl код:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ OutputCache VaryByParam="none" VaryByCustom="customstring" %>
<ul>
<% var model = (IMyViewModel)Model;
foreach (var menu in model.Menus) { %>
<li><a href="<%= menu.href %>"><%= menu.Text %></a></li>
<% } %>
</ul>
RenderAction доступен только в фьючерсах ASP.Net MVC ... Я не уверен, хотим ли мы туда туда добраться. –