However, now I want to be able to create multiple web.sitemap files, and then programmatically determine which web.sitemap file to use, but I can't seem to find out how to do this. I'm assuming I could either create one custom SiteMapProvider that can perform the logic to determine which web.sitemap file to load, or I have multiple providers, each one with the SiteMapFile property set to a specific *.sitemap file, and then switch providers programmatically before I access SiteMap.RootNode.
I've run into an issue where calling SiteMap.CurrentNode returns null when it really shouldn't be. I'm using SiteMap.CurrentNode to highlight certain buttons on the page and generate a sub navigation bar (through SiteMap.CurrentNode.ChildNodes).
Now this works until I attempt to get to my pages of which are generated by a dynamic provider. For some reason whenever I attempt this on my Projects page SiteMap.CurrentNode returns null. Overall this is a bad situation for my program because then I cant generate my sub-navigation bar.
I was hoping someone here might be able to figure out the fault in my Sitemap or provider so that I can do a basic tutorial to others who are attempting the same thing since I haven't seen a tutorial that implements a provider in the manner that I have.
Web.SiteMap:
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="~/Default.aspx" title="Home" description="Home page where updates and other information can be found"> <siteMapNode provider="ProjectProvider" /> <siteMapNode url="~/Contact/Default.aspx" title="Contacts" description="Contacts" /> </siteMapNode>.......
Provider:
Implements the following methods and all of them do not return Null (I checked via debug): - RootNode - GetRootNodeCore - Initialize - Clear - BuildSiteMap
We are getting this error message when we try to click the link in the menu to go to Report Server:
Source Error: Line 31: <siteMapNode title="Reports" description="Reports"> Line 32: Line 33: <siteMapNode url="https://ffxsqldgc01.ffx.co.fairfax.va.us/Reports/Pages/Folder.aspx?ItemPath=%2fDPZ&ViewMode=List" title="View Reports" description="Click here to view the reports" /> Line 34: </siteMapNode> Line 35:
I tried to add after the &, as it was suggested on one of the forum but it did not work. Any other ideas.
I've been having some production runtime errors that I don't fully understand. This has happened to us on a couple different ASP.NET 4.0 Web Sites (shudders - yes, I know - we're porting it to MVC but that's taking some time).
First of all, we have never been able to reproduce this issue in development/QA environments. Secondly, upon deployment, the issue seems to be non-existent. Sometimes the issue manifests within a day or two of deployment and other times the deployment will be live for a month without it manifesting at all. However, once it manifests, then ANY page viewed under the web site causes the error. Lastly, this problem seemed to only come up once we migrated to .NET 4.0. We started at 2.0, a year ago upped to 3.5, and recently upped to 4.0 with this solution and most child projects.
The error:
Could not find the sitemap node with URL '~/Default.aspx'.
A simplified version of our sitemap (with some names changed and uninteresting nodes removed) is as follows:
I have confirmed in all of the SiteMaps that there is a node with url="~/Default.aspx" with roles="*" (which includes public/anonymous access), so I am very confused as to why this problem occurs.
SiteMap does not have a node for Default.aspx. All of them do. SiteMap's Default.aspx node is not accessible for security reasons to the current user/role. They're all accessible to anonymous users and this problem even exists for super admin users. Passed-in URL contains querystrings (Default.aspx?abcd). I don't know if this is a problem (I sure would hope not) but once the problem manifests itself, I can handwrite the URL with no querystrings and the problem still exists.
SiteMap changes. It doesn't Service's permissions to the sitemap file. The sitemap works perfectly fine after a deployment, so unless permissions are changed in a way that IISRESET fixes, then this is not an issue. The worker process becomes globally corrupt. I don't think so. We have ~12 web sites all in the same app pool and the problem always stays confined within a single web site. Also, we have yet to have this happen to more than a single web site at a time although it has manifested itself in 4 different ones so far.
I am creating a CacheDependency on the file that my SiteMap provider uses. I would like to get the name of the file from my sitemap provider instead of hard coding it. Is there a way?
Edit
Duh, I forgot to mention: XmlSiteMapProvider that comes with ASP.NET
Edit 2
Reflector shows a private member field called _filename that isn't exposed in any way as far as I can tell.
How would I programatically reference a .sitemap file that is not the root web.sitemap file? I have a file called research.sitemap in a folder a level under root. I want to refernce this file in my code behind like his: SiteMapNode m1 = SiteMap.RootNode (but since this isnt web.sitemap in the root, I dont know how to get access to it).
I have a second level node that goes onto two lines. The first line indents 15px as is set by the class for node level 2. The seond line kicks back to the same level as 1st level nodes. Here's what I mean:
I have multiple .sitemap xml defined with different providers. For one xml file, I want to change the url (append Customerid in the url) by taking the defined url in xml file. I want this to be changed when the page is loaded the first time.
I have four categories, which I would like to show up in my breadcrumbs:
ex:
Home > Poems TOC > MyPoem
Home > Songs TOC > MySong
can I structure the xml in the Web.sitemap doc, so that even if the files are in the same directory, they will dispaly as above. (the TOC entries are table of content pages, which call the actual content pages)
I have a sitemap, and i'm using nested repeaters to display the parent and child nodes for my breadcrumbs.I have 3 pages: Home, Hub, and Search.Each of these pages can navigate to each other. In other words:
The most common path would be "Home > Hub" and Home > Search > HubHowever, I can't seem to figure out how to show this on my breadcrumbs, since you can't have multiple ULR's in the Sitemap. Right now, you can only go "Home > Hub". If you go from "Search" to "Hub...it should show "Home > Search > Hub" in the breadcrumbs.
have a question related to sitemap ........i have a pool of websites which are same in function but different in css and format ..every site in that pool different from each other in terms of information so each site in the pool would have different sitemap.xml but the problem is how would i know that the Google crawler or other search engine crawlers are picking the right sitemap ... ?is there any place where i can identify that sitemap-abc.xml belongs to abc site and sitemap-xyz.xml belongs to xyz site ? ll the xml are put in one folder only difference in between them is there names ..
Now, I've refactored my code to have a data layer, business layer and the main project as the view layer. Next I'd like to split this big project smaller projects based on discrete functionality. As I understand it, one way to handle a shared masterpage is to copy it into each project, that's not the worst thing, it hasn't changed in over a year and if it does it's easy enough to propagate the changes out to the other projects.
I was also reading that I could create an assembly from my master page and share it that way. My masterpage.aspx has a reference to a asp.net sitemap, Unlike the masterpage I'd like to maintain only one site map if possible.
I have two Master Pages, each with a SiteMapPath control that uses a separate sitemap assigned in markup via the SiteMapFile attribute. Both sitemap files are defined as providers in web.config, and sitemap "A" is set as default. My master pages are dynamically assigned to common content pages (in the Page_PreInit event).
When I login to application, i want Button ad a Header menu like (Admin,Quote....2 button should visible).
If Login User is Admin/Quote then Click on that Button it should show all its child nodes must be as the button horizontally.
[Code]....
Even i have to write the code in the Code Behind of Site.Master. I think i need Repeter's OnItemCommand event but it does not run that methods and how can i filter the sitemap with Role in this Method? I can not able to Find the control in the Code Behind.. Is it possible to show these type of custom menus using SiteMap with Role Filteration?