编辑:我的Routeconfig.cs似乎有问题。当我删除除最基本路由之外的所有内容时,我可以找到我的sitemap.xml。我会调查并回答一下。
-
我在MVC4项目中通过Nuget安装了MvcSiteMapProvider.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有更多的动作,我没有在模式中写出来)
在我的RouteConfig.cs的底部,我添加了这个像
MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(routes);
所有内容编译良好,我没有对代码进行任何其他更改。
但是当我转到localhost:xxxx / sitemap.xml时,我找不到文件(无法找到资源。)。我的印象是这可以开箱即用。我错过了什么吗?
MvcSiteMapProvider喜欢@ Html.MvcSiteMap()的其他东西.SiteMap()工作正常,但它不会生成sitemap.xml。
答案 0 :(得分:3)
我的RouteConfig.cs文件中存在格式错误,MVC路由解析器在到达关键代码之前就停止了:
MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(routes);
确保你的RouteConfig.cs没有中途停止,应该没问题。
所以这都是我的错。