public static string GetItemUrl <TComponent, TItem>(this TComponent component, TItem item, string defaultValue) where TComponent : WidgetBase, INavigationItemComponent <TItem> where TItem : NavigationItem <TItem>, IContentContainer { string url = item.GenerateUrl(((WidgetBase)component).ViewContext, component.UrlGenerator); if (url != null) { return(url); } IAsyncContentContainer asyncContentContainer = item as IAsyncContentContainer; if (asyncContentContainer != null && asyncContentContainer.ContentUrl.HasValue()) { return(component.IsSelfInitialized ? System.Web.HttpUtility.UrlDecode(asyncContentContainer.ContentUrl) : asyncContentContainer.ContentUrl); } if (item.Template.HasValue() && !item.RouteName.HasValue() && !item.Url.HasValue() && !item.ActionName.HasValue() && !item.ControllerName.HasValue()) { return((component.IsInClientTemplate ? "\\#" : "#") + component.GetItemContentId(item)); } return(defaultValue); }
public static string GetItemUrl <TComponent, TItem>(this TComponent component, TItem item, string defaultValue) where TComponent : TreeViewBase, IEssentialItem <TItem> where TItem : EssentialItem <TItem> { string str = GenerateUrl <TItem>(item, ((TreeViewBase)component).ViewContext); if (str != null) { return(str); } IAsyncContentContainer container = item as IAsyncContentContainer; if ((container != null) && container.ContentUrl.HasValue()) { return(!component.IsSelfInitialized ? container.ContentUrl : HttpUtility.UrlDecode(container.ContentUrl)); } if (((item.Template.HasValue() && !item.RouteName.HasValue()) && (!item.Url.HasValue() && !item.ActionName.HasValue())) && !item.ControllerName.HasValue()) { return((!component.IsInClientTemplate ? "#" : @"\#") + component.GetItemContentId <TComponent, TItem>(item)); } return(defaultValue); }