Сорри за сумбурно сформулированный вопрос, постараюсь описать проблем более понятно.
На сайте (asp.net / mvc) есть мастер пэйдж у которого есть Menu.ascx — как следует из названия отрисовывает меню сайта. Суть меню — список категорий сайта, которые можно выбрать. Для меню есть отдельный контроллер. Который просто выбирает из БД все категории. Ниже приведен исходный код вью и контроллера.
Menu.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ICollection<ICategory>>"%>
<div class="contain-25 clear">
<div class="lvl-nav clear">
<ul class="nav-pri clear">
<%--класс on - означает что данное меню выбрано и подсвечивается--%>
<li class="on">
<a rel="home" href="<%= Url.Content("~") %>">Все</a>
</li>
<%
foreach (ICategory category in Model)
{
%>
<li class="">
<%= Html.ActionLink(category.Name, "Category", "Story",
new { name = category.UniqueName }, new { rel = "tag directory" })%>
</li>
<%
}
%>
</ul>
</div>
</div>
Контроллер:
public class CategoryController : BaseController
{
private readonly ICategoryRepository _categoryRepository;
public CategoryController(ICategoryRepository categoryRepository)
{
Check.Argument.IsNotNull(categoryRepository, "categoryRepository");
_categoryRepository = categoryRepository;
}
private ICollection<ICategory> Categories
{
get { return _categoryRepository.FindAll(); }
}
[ValidateInput(false)]
[ChildActionOnly]
public ActionResult Menu()
{
return View(Categories);
}
[ChildActionOnly]
public ActionResult RadioButtonList()
{
return View(Categories);
}
}
Соответственно, есть контент-страницы, у которых еcть свои контроллеры.
Вот код контроллера отрабатывающего выбор категории
[Compress]
public ActionResult Category(string name, int? page)
{
name = name.NullSafe();
if (string.IsNullOrEmpty(name))
{
return RedirectToRoute("Published");
}
ICategory category = _categoryRepository.FindByUniqueName(name);
if (category == null)
{
ThrowNotFound("Категория не существует.");
}
StoryListViewData viewData = CreateStoryListViewData<StoryListViewData>(page);
string uniqueName = name;
string titleName = name;
string subtitle = name;
string metaDescription = null;
if (category != null)
{
PagedResult<IStory> pagedResult = _storyRepository.FindPublishedByCategory(category.Id, PageCalculator.StartIndex(page, Settings.HtmlStoryPerPage), Settings.HtmlStoryPerPage);
viewData.Stories = pagedResult.Result;
viewData.TotalStoryCount = pagedResult.Total;
name = category.Name;
uniqueName = category.UniqueName;
titleName = category.TitleName;
metaDescription = category.MetaDescription;
subtitle = "Новости {0}".FormatWith(titleName.ToLower());
}
viewData.Subtitle = subtitle;
return View("List", viewData);
}
Так вот мне в Menu.ascx надо получить текущую выбранную категорию, чтобы подсветить нужную кнопку в меню.
Как мне передать эти данные из контроллера категории в Menu.ascx ?