MvcSiteMapProvider - 不生成sitemap.xml

时间:2013-09-26 06:39:34

标签: c# asp.net-mvc asp.net-mvc-4 sitemap mvcsitemapprovider

编辑:我的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。

1 个答案:

答案 0 :(得分:3)

我的RouteConfig.cs文件中存在格式错误,MVC路由解析器在到达关键代码之前就停止了:

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

确保你的RouteConfig.cs没有中途停止,应该没问题。

所以这都是我的错。