Редактировать: Кажется, есть проблемы с моим 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.
Фактически, при использовании v4.0.14 или выше (и внутреннего контейнера DI) вам не нужно включать эту строку в вашу конфигурацию, как это делается автоматически. – NightOwl888
Хорошо, это здорово. Я не тестировал, но я подозреваю, что это сработает, так как я исправил свой RouteConfig. –