Question

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 ?

Was it helpful?

Solution

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

OTHER TIPS

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);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top