C# ASP.NET MVC4“;“想要”;我的自定义路线的尾随斜线

C# ASP.NET MVC4“;“想要”;我的自定义路线的尾随斜线,c#,asp.net,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-routing,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc Routing,我的ASP.NET MVC应用程序中有以下路径: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "AppCode", url: "AppCode", defaults: new { controller = "AppTo

我的ASP.NET MVC应用程序中有以下路径:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
       name: "AppCode",
       url: "AppCode",
       defaults: new { controller = "AppToken", action = "AuthenticateUser", authCode = UrlParameter.Optional }
   );

    routes.MapRoute(
        name: "ReplayFileRoute",
        url: "Replays/{replayName}/{fileName}",
        defaults: new { controller = "Replay", action = "GetReplayFile" }
    );

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}
现在的问题是,以下URL将导致404和“GetReplayFile”操作不被执行:

但是,以下URL有效:

因此,当我添加尾随斜线时,ASP选择了正确的路线,否则它不会。由于URL将由外部脚本生成,因此此时不能添加尾随斜杠。我只及格

http://localhost:59174/Replays/kgm3eauw.zbg/
对于脚本,实际的文件名将由脚本生成-不带尾随斜杠

所以我的问题是:如何创建第一个URL来调用“right”方法


另外:是否有任何关于RouteConfig如何工作的文档?到目前为止,我还没有找到多少

我想问题在于,is希望您的URL指向一个文件,而绕过ASP.NET MVC路由引擎。您必须让所有请求都通过ASP.NET,以使其在看起来也像文件的URL上匹配

您可以在
web.config
文件中进行设置。添加以下内容:

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

我想问题在于,它希望您的URL指向一个文件,而绕过ASP.NET MVC路由引擎。您必须让所有请求都通过ASP.NET,以使其在看起来也像文件的URL上匹配

您可以在
web.config
文件中进行设置。添加以下内容:

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