C# MvcSiteMapProvider-不生成sitemap.xml
编辑:我的Routeconfig.cs似乎有问题。当我删除除最基本的路由之外的所有内容时,我可以找到我的sitemap.xml。我会调查一下,然后给你一个答案 - 我已经通过Nuget在我的MVC4项目中安装了MvcSiteMapProvider.MVC4 我的Mvc.sitemap看起来像这样(这是我通过Nuget获得的) 一切都编译得很好,我没有对代码做任何其他修改 但是当我转到localhost:xxxx/sitemap.xml时,我找不到任何文件(找不到资源)。我的印象是,这将是开箱即用的。我错过什么了吗C# MvcSiteMapProvider-不生成sitemap.xml,c#,asp.net-mvc,asp.net-mvc-4,sitemap,mvcsitemapprovider,C#,Asp.net Mvc,Asp.net Mvc 4,Sitemap,Mvcsitemapprovider,编辑:我的Routeconfig.cs似乎有问题。当我删除除最基本的路由之外的所有内容时,我可以找到我的sitemap.xml。我会调查一下,然后给你一个答案 - 我已经通过Nuget在我的MVC4项目中安装了MvcSiteMapProvider.MVC4 我的Mvc.sitemap看起来像这样(这是我通过Nuget获得的) 一切都编译得很好,我没有对代码做任何其他修改 但是当我转到localhost:xxxx/sitemap.xml时,我找不到任何文件(找不到资源)。我的印象是,这将是开箱即用
MvcSiteMapProvider所做的其他事情,比如@Html.MvcSiteMap().SiteMap()工作得很好,但它只是不生成SiteMap.xml。我的RouteConfig.cs文件中有一个格式错误,MVC路由解析器在到达关键代码之前就停止了:
MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(路由)代码>
确保您的RouteConfig.cs没有中途停止,应该可以
所以这都是我的错。实际上,当使用v4.0.14或更高版本(以及内部DI容器)时,您不需要在配置中包含这一行,因为它现在是自动完成的。好的,这很好。我还没有测试,但我怀疑它会工作,因为我修复了我的RouteConfig。
<?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>
MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(routes);