C# ASP.NET MVC4“;“想要”;我的自定义路线的尾随斜线
我的ASP.NET MVC应用程序中有以下路径: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
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>