Как бы вы внедрили помощника крошки в asp.net mvc? - PullRequest
24 голосов
/ 15 сентября 2008

Я знаю, что вы могли бы довольно легко сделать помощника, учитывая данные. Поэтому, если возможно, отправляйте только те ответы, которые также включают получение данных.

Ответы [ 2 ]

12 голосов
/ 16 сентября 2008

Мы используем фильтр действий для этого.

...

    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

2 голосов
/ 21 сентября 2008

@ Крис: как-то так:

        <% 
        foreach (var item in ViewData.Get<Breadcrumb[]>())
            {
        %>
                <a href="<%= Server.HtmlEncode(item.Url) %>"><%= item.LinkText %></a> &raquo;
        <% 
            } 
        %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...