1

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

4

1 回答 1

3

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

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

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

所以这都是我的错。

于 2013-09-26T07:15:17.383 回答