我正在尝试在 Asp.Net MVC 中编写一个通用的“menu.ascx”用户控件,它将为我的应用程序生成一个格式正确的 HTML 菜单。菜单是根据数据库中的内容和一系列资源解析生成的……通过 ViewModel 上的属性传递给 PartialView。
在 menu.ascx 控件上使用 OutputCache 指令来限制到数据库和资源文件的往返次数是有意义的。我的意图是用 VaryByParam=none 和 VaryByCustom 属性标记 OutputCache 指令,在 global.asax 中实现自定义安全查找...
我的问题是:我们如何知道何时使用 menu.ascx 的 OutputCache,以便在控制器中构造 ViewModel 时跳过数据获取操作?
一些示例用户控件代码:
<%@ 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>