2011-06-13 57 views
1

我已经构建了以下扩展方法,并且已经为一个MVC3项目工作,但是当试图在另一个中使用它时,编译器(而不是视图)给了我错误;为HTMLHelper创建扩展方法的问题('TextBoxFor'不是'System.Web.Mvc.HtmlHelper(Of TModel)'的成员)

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

智能感知不显示这些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 
+0

明白了! - 需要导入System.Web.Mvc.Html命名空间 – 2011-06-13 02:19:30

回答

2

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