mas*_*ary 4 asp.net routing routes sitemap.xml
在搜索谷歌时,MVC网站的唯一解决方案就出现了.我的asp.net 4.0站点不是MVC.我希望对sitemap.xml的请求加载另一个动态.aspx页面,以便我可以动态生成谷歌链接.
我花了几个小时搜索,如果你知道我在哪里可以找到答案,请告诉我.
我试过用
RouteTable.Routes.Add("SitemapRoute", new Route("sitemap.xml", new PageRouteHandler("~/sitemap.aspx")))
Run Code Online (Sandbox Code Playgroud)
您的代码是正确的,应该放在Application_Start方法中Global.asax.例如:
void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new Route(
"sitemap.xml", new PageRouteHandler("~/sitemap.aspx")));
}
Run Code Online (Sandbox Code Playgroud)
但是,您还需要确保ASP.NET处理*.xml文件.默认情况下,*.xml文件将由IIS提供,而不由ASP.NET处理.要确保它们由ASP.NET处理,您可以:
1)在您runAllManagedModulesForAllRequests="true"的system.webServer元素中指定web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
</modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
或2)为.xml文件添加"处理程序映射":
<system.webServer>
<handlers>
<add name="xml-file-handler" path="*.xml" type="System.Web.UI.PageHandlerFactory"
verb="*" />
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我在一个示例ASP.NET(非MVC)项目中对此进行了测试,并且能够使路由按指定的方式工作.
| 归档时间: |
|
| 查看次数: |
1460 次 |
| 最近记录: |