Skip to content

v4.4.7

Compare
Choose a tag to compare
@NightOwl888 NightOwl888 released this 04 Jan 16:45
· 210 commits to master since this release

Potentially Breaking Change

The Attributes collection is no longer populated with any of the "known" attributes that are also properties, nor are the controller, action, or area being stored there.

This was causing these values to be duplicated within the SiteMapNode and it was taking about double the memory that it should have. So, this change will produce a much smaller memory footprint and increase both performance and scalability.

However, if you are using any of the SiteMapNode values from the Attributes collection, they are no longer available there. You can still access them through the properties of the node. Since it is presumed this will affect a very small number of users (if any) because all documentation uses the properties rather than the Attributes collection to access these values, we decided that this was a small enough change to go into a patch release.

Change Log

  1. Bug: Fixed overloads of menu HTML helper that combine the use of visibilityAffectsDescendants with node level from throwing ArgumentOutOfRange exceptions.
  2. Documentation: Added header to each of the test cases (Case1 and Case2) so they can be more easily understood.
  3. Bug: Fixed SiteMapXmlReservedAttributeNameProvider so it will exclude "known" attributes from the Attributes dictionary. This will reduce the memory footprint of the SiteMapNode by approximately 50%.
  4. Bug: Added validation to ensure the Area and Controller properties are populated with valid C# identifiers. For some reason, there is some documentation floating around on the Internet that specifies controller="AreaName/ControllerName", which is not supported by MvcSiteMapProvider (nor would we want to). There is an Area attribute/property set aside for this purpose.