代码之家  ›  专栏  ›  技术社区  ›  mackenir

ASP.NET MVC路由服务于网站“顶级”的文件?

  •  1
  • mackenir  · 技术社区  · 16 年前

    我是ASP.NET[MVC]的初学者,所以这可能是个愚蠢的问题。

    我想连接一个URL“ http://localhost/clientaccesspolicy.xml “到特定的控制器操作。我该怎么做呢?

    我还想知道如何静态地为这个URL提供一个文件。

    (通过在项目的顶层将文件添加为“内容”文件,我可以静态地服务于该文件)。

    2 回复  |  直到 16 年前
        1
  •  3
  •   David    16 年前

    应该是这样的,所以你所有的其他路线都保持原样…你不需要控制器的动作。

    routes.RouteExistingFiles = true;
    
    routes.IgnoreRoute("clientaccesspolicy.xml");
    
        2
  •  2
  •   DM.    16 年前

    您可以完成此添加:

    routes.RouteExistingFiles = true;
    

    最重要的是你的其他路线。然后添加:

    routes.MapRoute(null, "clientaccesspolicy.xml", new { controller = "Foo", action = "Whatever" });
    

    这应该有效,但我会警告你,这通常不是一个好主意。它的作用是告诉MVC路由系统停止提供与磁盘匹配的文件。这将包括你的图像,CSS,脚本等。这将使你工作比它将节省我想象的更多。