如何使用*扩展路由到Url *

时间:2012-12-17 01:31:06

标签: asp.net routing sitemap asp.net-webpages

我正在尝试提供由Razor视图生成的博客sitemap.xml文件,就像在我的_AppStart.cshtml文件中一样:

//sitemap
RouteTable.Routes.MapWebPageRoute("sitemap.xml", "~/pages/shared/sitemap.cshtml");

由于某种原因,这条路线被忽略了,我得到了404.如果我将它路由到“/ sitemap”,它的工作正常,但是当我包含文件扩展名时,它会中断。我假设IIS在使用它之前对请求做了一些事情,但我不知道该怎么办。

1 个答案:

答案 0 :(得分:0)

尝试将扩展名设为参数:

RouteTable.Routes.MapWebPageRoute(
    "sitemap.{extension}", // route pattern
    "~/pages/shared/sitemap.cshtml", // physical file
    defaultValues: new {extension = "xml"}, // defaults
    constraints: new {extension = "xml"}); // constraints (regex)