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