我正在尝试从别人的代码中学习。我看到了以下内容:
@Html.TextBoxFor(m => m.Name, Html.AttributesFor(m => m.Name))
有人可以向我解释Html.AttributesFor的工作原理吗?这些属性是什么,我可以在哪里设置它们。
更新:
我发现代码中隐藏了以下内容:
public static IDictionary<string, object> AttributesFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{
var attributes = new RouteValueDictionary {{"class", ""}};
WhenEncountering<StringLengthAttribute>(expression, att => attributes["maxlength"] = att.MaximumLength);
WhenEncountering<HintSizeAttribute>(expression, att =>
{
attributes["class"] += att.Size.ToString().ToLowerInvariant() + " ";
});
attributes["class"] = attributes["class"].ToString().Trim();
return attributes;
}
答案 0 :(得分:1)
TextBoxFor
帮助器有三个重载,没有人指定你发布的语法,可能是为了方便起见,有人编写的自定义助手。 Html.TextBoxFor
的第二个参数采用html objectHtmlAttributes
,您可以将其指定为
@Html.TextBoxFor(x=>x.name,new { @class="classname", @rel="nofollow" })
或需要IDictionat<string,object>htmlAttributes