MVC2扩展方法在我的视图中抛出错误

时间:2011-11-21 17:22:41

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

我有一个用MVC2和VB.NET编写的项目。我使用了很多htmlhelper扩展方法,并且我将它们全部放在公共模块中。它们工作得很好,我可以编译并运行我的项目。我用它来引用它们所在的命名空间:

<%@ Import Namespace="MyProject.WebUI.Extensions" %>

所以,再次,他们工作得很好,我的项目运行和编译顺利。

问题是这些扩展方法中的每一种都显示为错误:

  

错误33'TabbedMenu'不是'System.Web.Mvc.HtmlHelper(Of Object)'的成员。 C:\ Projects \ MyProject \ MyProject.WebUI \ Views \ Shared \ Site.Master 23 21 MyProject.WebUI

这不会阻止项目编译和运行,它只会产生错误,这很烦人。我已经尝试过寻找解决方案,但我发现的所有解决方案都是针对不编译的项目,所有解决方案都使用简单的解决方案,例如引用正确的命名空间或确保您的模块被公开。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您是否在site.Master中包含了一个import语句,以包含定义扩展名的扩展类。另外我假设你的扩展类是一个公共静态类,定义了公共静态方法?

如果你还没有检查出来,它可能与你所追求的有关。

How do I use an extension method in an ASP.NET MVC View?

答案 1 :(得分:0)

您需要导入放置扩展程序的命名空间。并且由于这个问题在运行时出现时有点烦人,因此可以启用view compilation让编译器检测到问题。我应该警告你,编译视图是一项耗时的操作。