Как бы вы реализовали помощник по навигации в asp.net mvc?
-
09-06-2019 - |
Вопрос
Я знаю, что, имея данные, вы могли бы легко создать помощника.Поэтому, если возможно, отправляйте только ответы, которые также включают получение данных.
Решение
Для этого мы используем фильтр действий.
...
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 в сеанс.URL-адрес HttpContext.Current.Request.RawUrl
Другие советы
@Крис:что-то вроде этого:
<%
foreach (var item in ViewData.Get<Breadcrumb[]>())
{
%>
<a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> »
<%
}
%>
Не связан с StackOverflow