Come implementeresti un helper breadcrumb in asp.net mvc?
-
09-06-2019 - |
Domanda
So che potresti diventare un aiutante abbastanza facilmente visti i dati.Pertanto, se possibile, invia solo risposte che includano anche la raccolta dei dati.
Soluzione
Stiamo utilizzando un filtro di azione per questo.
...
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controller = (Controller) filterContext.Controller;
Breadcrumb[] breadcrumbs = _breadcrumbManager.PushBreadcrumb(_breadcrumbLinkText);
controller.ViewData.Add(breadcrumbs);
}
prima che tu lo dica, anch'io ho un disgusto per la posizione del servizio negli attributi del filtro, ma ci restano poche opzioni.IBreadcrumbManager si presenta così:
public interface IBreadcrumbManager
{
Breadcrumb[] PushBreadcrumb(string linkText);
}
L'implementazione inserisce gli oggetti Breadcrumb nella Session.L'URL è HttpContext.Current.Request.RawUrl
Altri suggerimenti
@Chris:qualcosa come questo:
<%
foreach (var item in ViewData.Get<Breadcrumb[]>())
{
%>
<a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> »
<%
}
%>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow