Skip to content

A utility library for ASP.NET Core (both MVC and Razor Pages) websites to easily add and customize breadcrumbs.

License

Notifications You must be signed in to change notification settings

mgrdanc/SmartBreadcrumbs

 
 

Repository files navigation

There is only one minor improvement that I made to this and that is the ability to pass route values to Parent Nodes from children.

In the Example of Home -> List -> Detail -> History Where Detail's action needs route values passed else the breadcrumbs will break on History.

On the Parents's Action populate RouteValueKeys with the keys needed, On the Child set ViewData.[Key]'s value and a non-node-editing link change will occur. This will also pick up the Area name to preserive previous functionality.

-M Grdanc

-Feel free to improve.

=====================================================================================================================================

SmartBreadcrumbs 2.0.0

A utility library for ASP.NET Core (both MVC and Razor Pages) websites to easily add and customize breadcrumbs.

About the 2.0.0 version

When I created SmartBreadcrumbs, it only worked on MVC websites.
Razor Pages then came out and became "more popular", so I rewrote the whole code base, cleaned the project's structure, wrote unit tests and now, SmartBreadcrumbs works on both MVC and Razor Pages websites, even on the same project.
If you're interested in the README of the old version, it's available here: OLD_README.

Informations

Badges
Build Build Status Azure DevOps tests
NuGet NuGet Nuget
License GitHub

Documentation & Example

  • Wiki: A list of all the possible things you can do with SmartBreadcrumbs.
  • RazorPagesAndMvc: An example project containing both MVC and Razor Pages pages. Check it out to see how SmartBreadcrumbs works.

Usage

Install

Install the package using NuGet
Install-Package SmartBreadcrumbs

Initialize

After you have setup your breadcrumbs (using the Breadcrumb and DefaultBreadcrumb attributes), go ahead and add SmartBreadcrumbs in your services:

services.AddBreadcrumbs(GetType().Assembly);

Use

SmartBreadcrumbs comes with a breadcrumb tag that renders the breadcrumbs for you, to use it:

  1. In _ViewImports.cshtml, add @addTagHelper *, SmartBreadcrumbs.
  2. In your _Layout.cshml (or specific pages), use <breadcrumb></breadcrumb>.

Customize

Options

You can specify options when you initialize SmartBreadcrumbs:

services.AddBreadcrumbs(GetType().Assembly, options =>
{
	options.TagName = "nav";
	options.TagClasses = "";
	options.OlClasses = "breadcrumb";
	options.LiClasses = "breadcrumb-item";
	options.ActiveLiClasses = "breadcrumb-item active";
	options.SeparatorElement = "<li class=\"separator\">/</li>";
});

More

Check out the documentation if you need more customization!

  • You can manually create and set breadcrumb nodes, useful when you have dynamic breadcrumbs (e.g. E-Commerce website).
  • You can get access to the BreadcrumbManager and create your own TagHelper for example.

Credits & License

Credits: zHaytam and the contributors.
License: SmartBreadcrumbs is open source, licensed under the MIT License.

About

A utility library for ASP.NET Core (both MVC and Razor Pages) websites to easily add and customize breadcrumbs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%