Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create breadcrumbs Path in asp.net MVC

I'm trying to create a breadcrumbs that includes pages viewed by user, like the example:

Home -> Products -> Smartphones -> .....

Does anyone know how to do that in asp.net mvc 3 with razor view engine ? Or where i can find a good tutorial ?

like image 872
mmarques Avatar asked Aug 23 '13 12:08

mmarques


2 Answers

There is an open source project called MvcSiteMapProvider that I have been contributing to that makes this fairly easy. The project is available on NuGet.

Basically, you configure an sitemap with all of your pages. The sitemap can be configured in XML, code, or from another data source. The sitemap is then cached and shared between users. When a user navigates to a URL that is configured in the sitemap (either as a URL or as a dictionary of route values), it will use the relative position in the map to determine how to build breadcrumbs back to your home page.

There is a walk-through of installing and using its features here: MvcSiteMapProvider 4.0 - A Test Drive

like image 70
NightOwl888 Avatar answered Sep 19 '22 20:09

NightOwl888


Have you seen the open-source solution MvcBreadCrumbs? There's a couple of ways to accomplish it with this Nuget package. You can use attributes on controller methods like this:

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

or optionally add a static method call to override the label if it's data dependent:

[BreadCrumb(Label="Widget")]
public ActionResult Get(int id)
{
    [make db call]
    BreadCrumb.SetLabel(db.ItemDescription);
    return view(dbModel);
}
like image 43
Larz Avatar answered Sep 19 '22 20:09

Larz