嗨,我有一段代码会出错。
<%=Html.LabelFor(m => m.Id, new { @Class = "textbox-medium" })%>
错误:
方法'LabelFor'没有重载需要'2'参数。
有谁知道如何解决这个问题?
由于
答案 0 :(得分:5)
也许是某些内容:
public static class LabelExtensions
{
public static MvcHtmlString LabelFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> ex,
object htmlAttributes
)
{
var metadata = ModelMetadata.FromLambdaExpression<TModel, TProperty>(ex, htmlHelper.ViewData);
var htmlFieldName = ExpressionHelper.GetExpressionText(ex);
var labelText = metadata.DisplayName;
if (string.IsNullOrEmpty(labelText))
{
labelText = htmlFieldName.Split('.').Last();
}
if (string.IsNullOrEmpty(labelText))
{
return MvcHtmlString.Empty;
}
var tagBuilder = new TagBuilder("label");
var id = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(htmlFieldName);
tagBuilder.Attributes.Add("for", id);
var attributes = new RouteValueDictionary(htmlAttributes);
tagBuilder.MergeAttributes(attributes);
tagBuilder.SetInnerText(labelText);
return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.Normal));
}
}
然后:
<%= Html.LabelFor(x => x.Id, new { @class = "textbox-medium" }) %>