/ / Žiadne strúhanky s MVCSiteMapProvider custom MvcRouteHandler - strúhanka, poskytovateľ mapa stránok, sitemappath

Žiadne škrupiny s vlastným MVCSiteMapProvider MvcRouteHandler - breadcrumbs, sitemapprovider, sitemappath

Mám 2 trasy v global.asax

        routes.MapRoute(
"DefaultFriendlyUrl",
"Page/{FriendlyUrl}",
null,
new string[] { "MvcApplication2.Controllers" }
).RouteHandler = new FriendlyUrlRouteHandler();


routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "index", id = UrlParameter.Optional },
new string[] { "MvcApplication2.Controllers" }
);

takže FriendlyUrlRouteHandler pracuje so všetkými mojimi / stránkami / stránkami trás a posiela do nástroja PageController s 1 akčným indexom

public class FriendlyUrlRouteHandler : MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var friendlyUrl = (string)requestContext.RouteData.Values["FriendlyUrl"];

PageItem page = null;

if (!string.IsNullOrEmpty(friendlyUrl))
page = PageManager.GetPageByFriendlyUrl(friendlyUrl);

if (page == null)
{
requestContext.RouteData.Values["controller"] = "home";
requestContext.RouteData.Values["action"] = "index";
requestContext.RouteData.Values["id"] = null;
}
else
{
requestContext.RouteData.Values["controller"] = "page";
requestContext.RouteData.Values["action"] = "index";
requestContext.RouteData.Values["id"] = page.PageID;
}

return base.GetHttpHandler(requestContext);
}
}

Potom PageController získa obsah pre moju stránku a zobrazí ho. MvcSiteMapProvider však tieto stránky nezobrazuje

SiteMap.cs

public class SiteMap : DynamicNodeProviderBase
{
public override IEnumerable<DynamicNode> GetDynamicNodeCollection()
{
var returnValue = new List<DynamicNode>();
returnValue.Add(new DynamicNode() { Key = "id1", Title="CustomPage", Controller="Page", Action="Index" });
return returnValue;
}
}

A moja CustomPage neexistuje v @ Html.MvcSiteMap () .ModeMapPath (), ale stránka sa zobrazuje správne. Čo sa stalo v mojom kóde? Takže môžem, t stavať strom z mojich vlastných stránok v strúhanke reťazec ...

odpovede:

1 pre odpoveď č. 1

Zadajte svoj súbor Mvc.sit.

Zdá sa, že vo vašej inštancii DynamicNode chýba ParentKey.