C#mvc3将sitemap.xml重定向到控制器操作

我想将针对www.domain.com/sitemap.xml的网站上的每个呼叫重定向到控制器操作。 我怎样才能做到这一点?

到目前为止我已经有了这个,但返回的状态代码是302.我想用它返回200状态,但仍然重定向/重写为控制器动作。 我问的原因是我希望每次调用所提到的url重定向到一个控制分数。 控制器执行一些foo生成xml站点地图。 然后需要返回此控制分数的输出。

protected void Application_BeginRequest() { //Check if an call for the sitemap.xml has been made if (Request.Path == "/sitemap.xml") { Response.RedirectToRoute("XmlSitemap"); } } 

您可以使用MVC的路由function来实现此目的:

 routes.MapRoute( "Sitemap", "sitemap.xml", new { controller = "Home", action = "Sitemap" } ); 

将此放置在global.asax文件中后,对domain.com/sitemap.xml的所有请求都将路由到Home控制器的Sitemap操作。