2013-09-26 4 views
1

Редактировать: Кажется, есть проблемы с моим Routeconfig.cs. Когда я удаляю все, кроме самой базовой маршрутизации, я могу найти файл sitemap.xml. Я буду исследовать и вернуться с ответом.MvcSiteMapProvider - не генерирует sitemap.xml

-

Я установил MvcSiteMapProvider.MVC4 через NuGet в моем MVC4 проекте.

Мои Mvc.sitemap выглядит следующим образом (это, как я получил его через NuGet)

<?xml version="1.0" encoding="utf-8" ?> 
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0" 
      xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd"> 

    <mvcSiteMapNode title="Home" controller="Home" action="Index"> 
    <mvcSiteMapNode title="About" controller="Home" action="About"/> 
    </mvcSiteMapNode> 

</mvcSiteMap> 

У меня есть соответствующие контроллеры и действия в моем проекте (хотя мой HomeController имеет больше действия, которые я havn't writted из в схеме)

в нижней части моего RouteConfig.cs я добавил это как

MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(routes); 

Все компилируется нормально и я не делал никаких других изменений к коду.

Но когда я перехожу к localhost: xxxx/sitemap.xml Я не нахожу файл (ресурс не может быть найден.). У меня создалось впечатление, что это будет работать из коробки. Я что-то упускаю?

Другие вещи MvcSiteMapProvider действительно нравится @ Html.MvcSiteMap(). SiteMap() работает просто отлично, но он просто не генерирует sitemap.xml.

ответ

3

Был ошибка формата в моем файле RouteConfig.cs и MVC маршрут-анализатор просто остановился, прежде чем он достиг критического кода:

MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(routes);

Убедитесь, что ваш RouteConfig.cs не останавливается на полпути и все должно быть хорошо.

Так что это была моя вина.

+0

Фактически, при использовании v4.0.14 или выше (и внутреннего контейнера DI) вам не нужно включать эту строку в вашу конфигурацию, как это делается автоматически. – NightOwl888

+0

Хорошо, это здорово. Я не тестировал, но я подозреваю, что это сработает, так как я исправил свой RouteConfig. –

Смежные вопросы