Categories.ascx:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<ul>
<% foreach (string category in Model.Categories ) { %>
<li>
<%= Html.Encode(category) %>
</li>
<% } %>
</ul>
答案 0 :(得分:0)
这是在您的控制器中:
ViewData["CategoryList"] = _categoryService.GetCategoryList();
这存在于名为NameOfMyPartial.ascx的文件中:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<% foreach (var category in (IList<Category>)ViewData["CategoryList"])) { %>
// do stuff with category
<% } %>
然后在您的母版页面中:
<% RenderPartial("NameOfMyPartial"); %>
答案 1 :(得分:0)
我会为将使用MasterPage
的所有控制器创建一个基本控制器。在该基本控制器中,我将加载您的数据列表以创建菜单(从缓存,sql,无论如何)并将其存储在ViewData
中。
如果您愿意,您也可以为所有模型制作基础模型,这些模型将基于控制器加载视图,然后您可以直接将其加载到扩展此基类的模型中。
假设您使用了更简单的ViewData
路线,您可以在用户控件中访问ViewData
并加载菜单,因为您可以假设所有控制器都已预先加载此数据。< / p>