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
明白了! - 需要导入System.Web.Mvc.Html命名空间 – 2011-06-13 02:19:30