Есть два разных способа сделать это.Вы можете включить категории в каждую модель или можете сохранить категории в ViewDataDictionary и получить их оттуда.Обычно я хотел бы расширить модель данными, чтобы я мог использовать ее строго типизированным способом, но в этом случае - поскольку данные вездесущи - я бы, вероятно, пошел с ViewData и использовал бы базовый контроллер для заполненияэто (вероятно, в OnActionExecuted), так что он всегда доступен.В моем частичном представлении я бы преобразовал элемент ViewData в строго типизированный объект и использовал его оттуда.
Причина, по которой я бы сделал это, заключается в том, чтобы мои модели оставались чистыми для фактического представления, которое не нужнознать о данных для меню.Мне кажется, что это разумное исключение из обычного пути создания модели для конкретного вида.
<% var categories = ViewData["categories"] as IEnumerable<Category>; %>
<ul>
<li><a href="#">All</a></li>
<%
foreach (var curCat in categories)
{
%>
<li><a href="/messagecentre/category/<%=curCat.CategoryID.ToString() %>"><%= Html.Encode(curCat.Category1)%></a></li>
<%
}
%>
</ul>