Я столкнулся с той же проблемой: я пытался получить доступ к SPWeb.Navigation.Quicklaunch
из приемника функций веб-области, активированного из onet.xml, но SPWeb.Navigation.QuickLaunch.Count
всегда был 0, хотя я определенно добавил экземпляры списка в других функциях, активированных ранее в том же onet.xml.
Решением для меня было открыть новый SPSite и новый SPWeb в моем приемнике функций, после чего я смог получить доступ к элементам быстрого запуска. Например, это сработало для меня:
using (SPSite site = new SPSite("http://yourserver/"))
{
using (SPweb web = site.OpenWeb("theweb"))
{
web.Navigation.QuickLaunch.Count ; // greater than zero
// manipulate your quick launch here
}
}
Я предполагаю, что это потому, что создание нового объекта SPWeb загружает самое последнее состояние сети из базы данных, а SPWeb, переданный моему приемнику функций, не представляет последнее состояние. Но это я догадки