我在MVC2中的图像和robots.txt上遇到"不实现IController"错误

Ben*_*esh 53 asp.net-mvc routing exception

我在我的网络服务器上看到一个奇怪的错误,看似每个文件,但.aspx文件.

这是一个例子.只需将'/robots.txt'替换为任何.jpg名称或.gif或其他任何内容,您就会明白:

未找到路径'/robots.txt'的控制器或未实现IController.

我确定这与我如何设置路由有关,但我不确定我究竟需要做些什么.

此外,这是一个混合的MVC和WebForms站点,如果这有所不同.

Dan*_*ite 76

您可以忽略robots.txt和路由中的所有aspx页面.

routes.IgnoreRoute("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});
routes.IgnoreRoute("{*robotstxt}", new {robotstxt=@"(.*/)?robots.txt(/.*)?"});
Run Code Online (Sandbox Code Playgroud)

您可能也想忽略favicon.

routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
Run Code Online (Sandbox Code Playgroud)

您可以调整正则表达式以排除路径.

源头上沾沾自喜.


The*_*der 16

上面给出的忽略路线对我不起作用,但我发现了一个类似的路线:

routes.IgnoreRoute("{*staticfile}", new { staticfile = @".*\.(css|js|gif|jpg)(/.*)?" });
Run Code Online (Sandbox Code Playgroud)


Dan*_*iel 6

如果在您所在区域的视图中使用Html.Action帮助程序,也可能发生此错误.除非您具体告诉它,否则此助手将始终使用该区域作为前置.例如,

@Html.Action("Main", "Navigation", new { area = string.Empty })
Run Code Online (Sandbox Code Playgroud)