我们将如何在asp.net mvc中实现面包屑助手?
时间:2020-03-05 18:54:19 来源:igfitidea点击:
我知道我们可以根据数据轻松地创建一个助手。因此,如果可能,请仅提交还包括获取数据的答案。
解决方案
回答
为此,我们正在使用动作过滤器。
...
public override void OnActionExecuting(ActionExecutingContext filterContext) { var controller = (Controller) filterContext.Controller; Breadcrumb[] breadcrumbs = _breadcrumbManager.PushBreadcrumb(_breadcrumbLinkText); controller.ViewData.Add(breadcrumbs); }
在我们提到它之前,我对过滤器属性中的服务位置也很不满意,但是我们留下的选择很少。 IBreadcrumbManager看起来像这样:
public interface IBreadcrumbManager { Breadcrumb[] PushBreadcrumb(string linkText); }
该实现将"面包屑"对象放入会话中。网址为HttpContext.Current.Request.RawUrl
回答
@Chris:像这样的东西:
<% foreach (var item in ViewData.Get<Breadcrumb[]>()) { %> <a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> » <% } %>