ASP.NET карты сайта

голоса
31

Кто - нибудь есть опыт создания SQL на базе ASP.NET поставщиков карты веб-узла?

У меня есть файл по умолчанию XML web.sitemapработает должным образом с моим меню и SiteMapPath управлением, но я нужен способ для пользователей моего сайта , чтобы создавать и изменять страницы динамически.

Мне нужно связать разрешения страницы просмотра в стандартную ASP.NETсистему членства , а также.

Задан 01/08/2008 в 16:50
источник пользователем
На других языках...                            


1 ответов

голоса
11

Версия Просиза из журнала MSDN работает довольно хорошо, но у него есть несколько недостатков:

AddNode выкрутасы со ссылками на внешние сайты по меню (www.google.com, и т.д.)

Вот мое исправление в BuildSiteMap():

SiteMapNode node = GetSiteMapNodeFromReader(reader);
string url = node.Url;
if (url.Contains(":"))
{
    string garbage = Guid.NewGuid().ToString();  // SiteMapNode needs unique URLs
    node.Url = "~/dummy_" + garbage + ".aspx";
    AddNode(node, _root);
    node.Url = url;
}
else
{
    AddNode(node, _root);
}

SQLDependencyкэширование это здорово, но если вы не хотите , чтобы сделать поездку в каждый раз DB ваши грузы меню (проверить , чтобы увидеть , если зависимость изменилась) и ваше меню не меняется очень часто, то почему бы не использовать HttpRuntime.Cacheвместо этого?

public override SiteMapNode RootNode
{
    get
    {
        SiteMapNode temp = (SiteMapNode)HttpRuntime.Cache["SomeKeyName"];
        if (temp == null)
        {
            temp = BuildSiteMap();
            HttpRuntime.Cache.Insert("SomeKeyName", temp, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration);
        }
        return temp;
    }
}
Ответил 23/09/2008 d 23:41
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more