Это очень простой сценарий:
public class StockItemController : Controller
{
public ActionResult Index(int categoryId)
{
/// ...
}
}
Примеры маршрутов:
/StockItem?categoryId=1 // должно быть "Напитки" /StockItem?categoryId=1 // должно быть "Обувь"
Вот сокращенная карта сайта:
<mvcSiteMapNode title="Home" controller="Home" action="Index">
<mvcSiteMapNode title="Template" action="Index" controller="StockItem" dynamicNodeProvider="uTani.UI.Common.BreadCrumbCategoryProvder, Store.UI" />
and the part of the class:
public override IEnumerable<DynamicNode> GetDynamicNodeCollection()
{
foreach (Category category in _repository.GetCategories())
{
string key = "Category" + category.Id;
string title = category.DescriptionRU;
DynamicNode node = new DynamicNode(key, title);
node.RouteValues.Add("categoryId", category.Id);
yield return node;
}
}
Что все это делает, так это правильно генерирует меню сайта с помощью @Html.MvcSiteMap().Menu()
, но проблема в том, что @Html.MvcSiteMap().SiteMapPath()
(хлебные крошки) всегда показывает самый первый динамический узел независимо от маршрута...
Я не знаю, чего мне здесь не хватает, и документации по этому вопросу недостаточно. У кого-нибудь есть образец или может указать, что я делаю неправильно?
Спасибо,
-Стэн