【发布时间】:2012-10-07 19:33:58
【问题描述】:
我想自动生成 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" });
}
我的网站在 localhost:7365/ 下运行。当我调用 localhost:7365/cache.manifest 时,我得到一个 404.0 并包含以下详细信息: 模块:IIS Web Core,消息:MapRequestHandler,处理程序:StaticFile,错误代码:0x80070002。
并且永远不会调用该操作。有什么建议可以更改以获得正确的路由?
【问题讨论】:
-
当我在开头移动映射并将 url 更改为缓存(没有清单扩展名)时,它可以工作。所以问题是扩展。如何强制路由不通过 staticfilehandler 服务?
标签: asp.net asp.net-mvc routing