Je sais que vous pourriez faire une aide assez facilement compte tenu des données. Donc, si possible, veuillez ne soumettre que les réponses qui incluent également l'obtention des données.Comment implémenteriez-vous un assistant de fil d'Ariane dans asp.net mvc?
24
A
Répondre
12
Nous utilisons un filtre d'action pour cela.
...
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controller = (Controller) filterContext.Controller;
Breadcrumb[] breadcrumbs = _breadcrumbManager.PushBreadcrumb(_breadcrumbLinkText);
controller.ViewData.Add(breadcrumbs);
}
avant de le mentionner, moi aussi j'ai un dégoût pour l'emplacement de service dans le filtre des attributs - mais il nous reste peu d'options. IBreadcrumbManager ressemble à ceci:
public interface IBreadcrumbManager
{
Breadcrumb[] PushBreadcrumb(string linkText);
}
La mise en œuvre met les objets miettes de pain dans la session. L'URL est HttpContext.Current.Request.RawUrl
2
@ Chris: quelque chose comme ceci:
<%
foreach (var item in ViewData.Get<Breadcrumb[]>())
{
%>
<a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> »
<%
}
%>
est l'implémentation de IBreadcrumbManager quelque part, nous pouvons regarder? D'où vient _breakcrumbLinkText? – flipdoubt
pourriez-vous montrer un exemple plus détaillé de cette solution à l'aide de fil d'Ariane? Avez-vous une solution de test que vous pourriez partager peut-être? Je ne comprends pas vraiment avec l'interface _breadcrumbManager/IBreadcrumbManager .. – Webking