Создать путь хлебных крошек в asp.net MVC

Я пытаюсь создать хлебные крошки, которые включают страницы, просматриваемые пользователем, например:

Главная -> Продукция -> Смартфоны -> .....

Кто-нибудь знает, как это сделать в asp.net mvc 3 с механизмом просмотра бритвы? Или где я могу найти хороший учебник?


person mmarques    schedule 23.08.2013    source источник
comment
используйте карту сайта mvc.. community.composite.net/Blog/2011/01/24/   -  person Neha    schedule 23.08.2013


Ответы (2)


Существует проект с открытым исходным кодом под названием MvcSiteMapProvider, в котором я участвовал, что делает это довольно простым. Проект доступен на NuGet.

По сути, вы настраиваете карту сайта для всех своих страниц. Карта сайта может быть настроена в XML, коде или из другого источника данных. Затем карта сайта кэшируется и передается пользователям. Когда пользователь переходит по URL-адресу, настроенному в карте сайта (либо как URL-адрес, либо как словарь значений маршрута), он будет использовать относительное положение на карте, чтобы определить, как построить навигационные крошки обратно на вашу домашнюю страницу.

Пошаговое руководство по установке и использованию его функций можно найти здесь: MvcSiteMapProvider 4.0 — тест-драйв

person NightOwl888    schedule 23.08.2013

Вы видели решение с открытым исходным кодом MvcBreadCrumbs? Есть несколько способов сделать это с помощью этого пакета Nuget. Вы можете использовать атрибуты в методах контроллера следующим образом:

[BreadCrumb(Label="Widget")]
public ActionResult ...

или, при желании, добавьте вызов статического метода, чтобы переопределить метку, если она зависит от данных:

[BreadCrumb(Label="Widget")]
public ActionResult Get(int id)
{
    [make db call]
    BreadCrumb.SetLabel(db.ItemDescription);
    return view(dbModel);
}
person Larz    schedule 16.10.2015