savedRouteParameters , , , "id" . , "id" RouteParameters , , , .
- (, "projectId" "sessionId" ). node, "", .
<mvcSiteMapNode title="Project" controller="Projects" action="Details" preservedRouteParameters="projectId">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" preservedRouteParameters="projectId,sessionId">
, , URL- , ( URL-) node, , node.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "SessionRoute",
url: "Project/{projectId}/{sessionId}",
defaults: new { controller = "Sessions", action = "Details" });
routes.MapRoute(
name: "ProjectRoute",
url: "Project/{projectId}",
defaults: new { controller = "Projects", action = "Details" });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
MvcSiteMapProvider-Forcing-A-Match-2-Levels , , , , - , URL-.
, RouteParmeters node .
<mvcSiteMapNode title="Project" controller="Projects" action="Details" preservedRouteParameters="projectId">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="1" preservedRouteParameters="projectId">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="2" preservedRouteParameters="projectId">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="3" preservedRouteParameters="projectId">
node "id" , .
<mvcSiteMapNode title="Project" controller="Projects" action="Details" id="1">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="1">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="2">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="3">
</mvcSiteMapNode>
<mvcSiteMapNode title="Project" controller="Projects" action="Details" id="2">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="4">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="5">
<mvcSiteMapNode title="Session" controller="Sessions" action="Details" id="6">
</mvcSiteMapNode>
DynamicNodeProvider , XML.
URL-, . , URL (RouteParmaters) ( ) , .
inheritedRouteParameters node XML .
BTW - , node. 2 , , , .