Пример #1
0
        private static BreadcrumbsViewModel GetBreadCrumbsViewModel(IUIViewHelper helper)
        {
            var pageViewModel = helper.HtmlHelper.ViewData.Model as IPageRoutableViewModel;

            if (pageViewModel != null)
            {
                return(GetBreadcrumbs(pageViewModel.PageRoutingHelper));
            }

            return(null);
        }
Пример #2
0
        /// <summary>
        /// Renders a list of breadcrumb links using the default template.
        /// </summary>
        public static HtmlString Breadcrumbs(this IUIViewHelper helper)
        {
            var vm = GetBreadCrumbsViewModel(helper);

            if (vm == null)
            {
                return(null);
            }

            var list = new TagBuilder("ol");

            list.Attributes["id"]   = "breadcrumbs";
            list.Attributes["role"] = "navigation";

            foreach (BreadcrumbViewModel breadCrumb in vm.Breadcrumbs)
            {
                var itemEl = new TagBuilder("li");

                if (breadCrumb == vm.Breadcrumbs.First())
                {
                    itemEl.AddCssClass("first");
                }

                if (breadCrumb == vm.Breadcrumbs.Last())
                {
                    itemEl.AddCssClass("last");
                }

                if (breadCrumb.HasHref)
                {
                    var link = new TagBuilder("a");
                    link.Attributes.Add("href", breadCrumb.Href);
                    link.SetInnerText(breadCrumb.Title);
                    itemEl.InnerHtml = link.ToString();
                }
                else
                {
                    itemEl.SetInnerText(breadCrumb.Title);
                }

                list.InnerHtml += itemEl.ToString();
            }

            return(new HtmlString(list.ToString()));
        }
Пример #3
0
 /// <summary>
 /// Renders a list of breadcrumb links using the specified template.
 /// </summary>
 /// <param name="partialViewName">The name of the partialview to use when rendering the breadcrumb view model</param>
 public static HtmlString Breadcrumbs(this IUIViewHelper helper, string partialViewName)
 {
     return(helper.HtmlHelper.Partial(partialViewName, GetBreadCrumbsViewModel(helper)));
 }