我正在创建我的第一个 MVC 辅助方法,但不能完全理解。我想发出与标准“@Html.TextBoxFor”相同的代码,但属性“title”及其值取自模型属性。这就是我到目前为止所拥有的。你可以看到我试图在最后使用标准的“TextBoxFor”并向它添加我自己的属性,但这似乎不是这样做的方法。
public static MvcHtmlString TextBoxForWithTitle<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
{
var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
return htmlHelper.TextBoxFor(expression, new { @title = metaData.DisplayName });
}
具体来说,我得到一个编译时错误:
'System.Web.Mvc.HtmlHelper<TModel>' does not contain a definition for 'TextBoxFor' and no extension method 'TextBoxFor' accepting a first argument of type 'System.Web.Mvc.HtmlHelper<TModel>' could be found (are you missing a using directive or an assembly reference?) D:\DevData\JWilliams\Code\Sandbox\URIntakeMVC2\URIntake\HtmlHelpers.cs 16 31 URIntake