24
我知道你可以很容易地给一个帮手给予数据。所以,如果可能的话,请只提交也包括获取数据的答案。你将如何在asp.net mvc中实现面包屑助手?
我知道你可以很容易地给一个帮手给予数据。所以,如果可能的话,请只提交也包括获取数据的答案。你将如何在asp.net mvc中实现面包屑助手?
我们正在为此使用动作过滤器。
...
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);
}
该实现将Breadcrumb对象放入会话中。网址是HttpContext.Current.Request.RawUrl
@克里斯:是这样的:
<%
foreach (var item in ViewData.Get<Breadcrumb[]>())
{
%>
<a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> »
<%
}
%>
是IBreadcrumbManager执行的地方,我们可以看看? _breakcrumbLinkText从哪里来? – flipdoubt 2009-09-25 21:11:38