2012-01-13 11 views
4

googleを検索する際には、MVC Webサイトのための唯一の解決策があります。私のasp.net 4.0サイトはMVCではありません。 sitemap.xmlに別の動的.aspxページをロードするようにリクエストして、Googleのためのリンクを生成できるようにしたい。私のNON-MVCサイトをsitemap.xmlから別の.aspxページにルーティングする方法を理解してください

私は時間を費やして検索しました。私が答えを見つけることができる場所が分かっていれば教えてください。

私が使用して試してみました

RouteTable.Routes.Add("SitemapRoute", new Route("sitemap.xml", new PageRouteHandler("~/sitemap.aspx"))) 

答えて

6

あなたのコードが正しい、とGlobal.asaxApplication_Start方法で配置する必要があります。例:

void Application_Start(object sender, EventArgs e) 
{ 
    RouteTable.Routes.Add(new Route(
     "sitemap.xml", new PageRouteHandler("~/sitemap.aspx"))); 
} 

ただし、* .xmlファイルがASP.NETによって処理されることも確認する必要があります。既定では、* .xmlファイルはIISによって処理され、ASP.NETによって処理されません。確認するために、彼らはASP.NETによって処理されている、あなたは、次のいずれかです。

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
    </modules> 
</system.webServer> 

または2)を追加し、 "ハンドラーマッピング" の.xmlのため:あなたのweb.configsystem.webServer要素にrunAllManagedModulesForAllRequests="true"を指定

1)ファイル:

<system.webServer> 
    <handlers> 
     <add name="xml-file-handler" path="*.xml" type="System.Web.UI.PageHandlerFactory" 
      verb="*" /> 
    </handlers> 
    </system.webServer> 

サンプルASP.NET(非MVC)プロジェクトでこれをテストし、指定したとおりにルーティングを取得できました。

+0

うわー、本当にありがとうございます。あなたがHuntington Beach CAの近くに住んでいれば、私に飲み物を買うことができます。 – masteroleary

+0

ハハ、私は助けることができてうれしい! – rsbarro

+0

シャーロットノースカロライナの近くのどこにいても飲み物が私の上にある! – NTDLS

関連する問題