本文整理汇总了C#中ISiteMapNode.HasAbsoluteUrl方法的典型用法代码示例。如果您正苦于以下问题:C# ISiteMapNode.HasAbsoluteUrl方法的具体用法?C# ISiteMapNode.HasAbsoluteUrl怎么用?C# ISiteMapNode.HasAbsoluteUrl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISiteMapNode
的用法示例。
在下文中一共展示了ISiteMapNode.HasAbsoluteUrl方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddNodeInternal
protected virtual void AddNodeInternal(ISiteMapNode node, ISiteMapNode parentNode)
{
if (node == null)
{
throw new ArgumentNullException("node");
}
lock (this.synclock)
{
bool urlPrepared = false;
bool urlEncoded = false;
string url = node.Url;
if (!string.IsNullOrEmpty(url))
{
if (node.HasAbsoluteUrl())
{
// This is an external url, so we will encode it
url = urlPath.UrlEncode(url);
urlEncoded = true;
}
if (urlPath.AppDomainAppVirtualPath != null)
{
if (!urlPath.IsAbsolutePhysicalPath(url))
{
url = urlPath.MakeVirtualPathAppAbsolute(urlPath.Combine(urlPath.AppDomainAppVirtualPath, url));
}
if (this.urlTable.ContainsKey(url))
{
if (urlEncoded)
{
url = urlPath.UrlDecode(url);
}
throw new InvalidOperationException(String.Format(Resources.Messages.MultipleNodesWithIdenticalUrl, url));
}
}
urlPrepared = true;
}
string key = node.Key;
if (this.keyTable.ContainsKey(key))
{
throw new InvalidOperationException(String.Format(Resources.Messages.MultipleNodesWithIdenticalKey, key));
}
this.keyTable[key] = node;
if (urlPrepared)
{
this.urlTable[url] = node;
}
if (parentNode != null)
{
this.parentNodeTable[node] = parentNode;
if (!this.childNodeCollectionTable.ContainsKey(parentNode))
{
this.childNodeCollectionTable[parentNode] = siteMapChildStateFactory.CreateLockableSiteMapNodeCollection(this);
}
this.childNodeCollectionTable[parentNode].Add(node);
}
}
}
示例2: GetAbsoluteUrl
/// <summary>
/// Gets the absolute URL for a node.
/// </summary>
/// <param name="node">The node.</param>
/// <returns>The absolute URL.</returns>
protected virtual string GetAbsoluteUrl(ISiteMapNode node)
{
var nodeUrl = node.Url;
var result = nodeUrl;
if (!node.HasAbsoluteUrl())
{
result = this.BaseUrl + nodeUrl;
}
return result;
}