Сведения о вопросе

Solllo

16:03, 1st July, 2020

Теги

sql   asp.net   xml   sitemap    

ASP.NET Карты Сайтов

Просмотров: 469   Ответов: 1

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

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

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



  Сведения об ответе

dump

18:03, 1st July, 2020

Версия Jeff Prosise от журнала 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;
    }
}


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться