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);
}
Good Luck!