ASP.NET MVC4路由问题与缓存,清单文件

Mar*_* H. 3 asp.net asp.net-mvc routing

我想自动生成cache.manifest文件.因此,我创建了一个可由/ OfflineSupport/Manifest访问的控制器和操作.一切正常.内容正确传递.

现在我想在调用cache.manifest时注册此操作.这就是我添加新路线的原因.我的RegisterRoutes方法如下所示:

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

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional}
    );

    routes.MapRoute("cache.manifest", "cache.manifest", new { controller = "OfflineSupport", action = "Manifest" });
}
Run Code Online (Sandbox Code Playgroud)

我的网站运行在localhost:7365 /.当我调用localhost:7365/cache.manifest时,我得到一个404.0,其中包含以下详细信息:module:IIS Web Core,消息:MapRequestHandler,handler:StaticFile,errorcode:0x80070002.

并且从未调用过该动作.有什么建议要改变以获得正确的路由?

小智 7

可以修改web.config以包含:

<modules runAllManagedModulesForAllRequests="true"/>
Run Code Online (Sandbox Code Playgroud)

这将允许路由中的句点和非query-string-defined(?)参数.