Podstawa odczytu to poniższy fragment kodu:
if(!SiteMapManager.SiteMaps.ContainsKey("WebSiteMap"))
{
SiteMapManager.SiteMaps.Register("WebSiteMap", sitemap => sitemap.LoadFrom("~/Web.sitemap"));
}
To co zrobiliśmy właśnie to załadowanie do statycznego obiektu naszej sitemapy. Różnica pomiędzy tą zaimplementowaną przez KendoUI i .NET polega na tym, że Kendo nie jest wstanie automatycznie przetłumaczyć wpisów z pliku .resx podpiętych do taga resourceKey. Ponadto brakuje ról a adresy do stron ASPX mają \ zamiast /. Niestety właściwości title, po odczycie, będą null'ami. Bez tego, mimo sukcesu przy odczycie, nie uda się ustawić nazw pozycji. Konieczne jest przeiterowanie kolekcji node'ów i odczyt z atrybutów resourceKey.
Problematyczne okazało się ucinanie wierszy w przypadku, gdy użytkownik nie ma danej roli. Usuwanie node'a nie dawało sukcesu. Dopiero ustawienie Visibility = false, gdy właściwość Text jest null'em z poziomu cshtml'a dało pożądany rezultat.
3 dni walki, ale rezultat jest satysfakcjonujący.
Brak komentarzy:
Prześlij komentarz