mvc:favicon.ico还能找一个控制器吗?

时间:2011-01-07 09:40:27

标签: asp.net asp.net-mvc asp.net-mvc-2

我收到错误:

  

“未找到路径'/favicon.ico'的控制器或未实现IController”

然后我想:框架如何知道它有哪些文件来实例化控制器,因为脚本,css和其他文件也是如此?

(从未想过这一点,但现在,favicon正在抱怨,我在想......)

但回到错误,为什么会发生这种情况?

5 个答案:

答案 0 :(得分:106)

将此添加到 global.asax

routes.IgnoreRoute("favicon.ico");

答案 1 :(得分:19)

您还可以使用约束

指定忽略路线
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

答案 2 :(得分:13)

最佳答案是正确的。

routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

但是对于较新版本的MVC,你必须在 RouteConfig.cs 中的 RegisterRoutes 方法的顶部添加它(所以在routes.MapRoute(..)之前的某个地方)叫)。

答案 3 :(得分:3)

您可能正在使用VS Web服务器获取此信息。正确?

你不会用IIS得到这个,因为IIS(默认情况下)处理图像请求(.ico,.jpg,.gif等等),因此它们不会进入你的应用程序。

答案 4 :(得分:0)

有趣的是,只有当我选中了tools->options->debugging下的“启用我的代码”选项时才会出现此错误,并且只要我取消选中它,我就不会再收到此错误。

但请注意,似乎错误仍在幕后抛出,但在内部被立即捕获,因此最好的解决方案是在global.asax中编码,忽略它,如其他答案所示。