Vra
Het iemand ervaring met skep SQL-gebaseerde ASP.NET werfkaartverskaffers?
Ek het die standaard XML-lêer web.sitemap
werk behoorlik met my spyskaart en SiteMapPath kontroles, maar ek sal 'n manier nodig hê vir die gebruikers van my werf om bladsye dinamies te skep en te wysig.
Ek moet bladsybesigtigingstoestemmings aan die standaard koppel ASP.NET
lidmaatskapstelsel ook.
Geen korrekte oplossing nie
Ander wenke
Die Jeff Prosise-weergawe van MSDN-tydskrif werk redelik goed, maar dit het 'n paar foute:
AddNode
skrik met skakels na eksterne werwe op jou spyskaart (www.google.com, ens.)
Hier is my fix in 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
caching is gaaf, maar as jy nie 'n draai na die DB wil maak elke keer as jou spyskaart laai nie (om te kyk of die afhanklikheid verander het) en jou spyskaarte verander nie baie gereeld nie, hoekom gebruik dan nie HttpRuntime.Cache
eerder?
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;
}
}