为HTMLHelper创建扩展方法的问题('TextBoxFor'不是'System.Web.Mvc.HtmlHelper(Of TModel)的成员')

时间:2011-06-13 01:25:36

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

我有以下扩展方法,我已经构建并为一个MVC3项目工作,但是当尝试在另一个MVC3项目中使用它时,编译器(不是视图)给出了错误;

Error   1   'TextBoxFor' is not a member of 'System.Web.Mvc.HtmlHelper(Of TModel)'...

Intellisense没有显示这些html元素shorcut方法。

我确定这只是因为我错过了一个参考或其他东西,但是打败了它。

FImports System.Runtime.CompilerServices

Public Module HtmlHelperExtension

<Extension()> _
Public Function WatermarkedTextBoxFor(Of TModel, TProperty)(ByVal htmlHelper As System.Web.Mvc.HtmlHelper(Of TModel), ByVal expression As Linq.Expressions.Expression(Of Func(Of TModel, TProperty)), ByVal htmlAttributes As IDictionary(Of String, Object)) As MvcHtmlString

    Dim propertyMetaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData)

    Return htmlHelper.TextBoxFor(expression, New RouteValueDictionary(htmlAttributes) From {
                                 {"class", "jq_watermark"},
                                 {"title", If(Not String.IsNullOrEmpty(propertyMetaData.Watermark), propertyMetaData.Watermark, propertyMetaData.GetDisplayName())}
                             })

End Function
End Module

1 个答案:

答案 0 :(得分:2)

我需要导入System.Web.Mvc.Html命名空间