Постоянные параметры провайдера карты сайта MVC - PullRequest
1 голос
/ 06 апреля 2011

Это сводило меня с ума в последние пару часов.Я использую MVC Sitemap Provider для добавления функциональности хлебных крошек.

Позвольте мне пройти шаги, которые я сделал, чтобы я мог сделать это как можно более ясным

  • Скачал ресурс с Nuget
  • Iтогда у меня есть следующее в моей карте сайта

    <?xml version="1.0" encoding="utf-8" ?>
    

    <mvcSiteMapNode title="Vehicles" controller="Vehicles" area="Vehicles" action="Index">
      <mvcSiteMapNode title="VehicleName" controller="Vehicles" area="Vehicles" action="Showroom" >
        <mvcSiteMapNode title="Overview" area="Vehicles" controller="Vehicles" action="Overview" />
      </mvcSiteMapNode>
    </mvcSiteMapNode>
    

  • И у меня есть это на мой взгляд

    @ Html.MvcSiteMap (). SiteMapPath ()

  • Мои первые вопросы: как я могу заменить «VehicleName» для выставочного зала действий на мое действительное VehicleName?

  • Моя настоящая проблема: мой идентификатор не сохраняется до родителя.Например, мой URL будет localhost: 44357 / Vehicles / Overview / Soul / 1, а родительский URL будет localhost: 44357 / Vehicles / Showroom вместо localhost: 44357 / Vehicles / Showroom / Soul / 1.Имя транспортных средств в URL-адресе необязательно, поэтому URL-адрес может быть просто localhost: 44357 / Транспортные средства / Шоу-рум / 1.

Надеюсь, это имеет смысл

Спасибо за вашпомощь.

1 Ответ

1 голос
/ 30 мая 2011

Для вопросов 1: установите VehicleName на родительском узле.Например: ((MvcSiteMapNode) SiteMap.CurrentNode.Parent) .RouteValues.Add ("VehicleName", "SomeVehicle") ;.Хорошим вариантом также может быть использование динамических провайдеров узлов для создания структуры вашей карты сайта.

Для вопроса 2: [SiteMapPreserveRouteData] должно решить проблему

...