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>

プロジェクトに対応するコントローラーとアクションがあります(ただし、ホームコントローラーには、スキーマに書き込んでいないアクションが他にもあります)

私の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 に答える