在Razor中编写Html帮助元素时,例如:
@Html.LabelFor(m => m.MyProperty, new { @class="col-sm-2 control-label" })
或
@Html.TextBoxFor(m => m.MyProperty, new { @class="form-control", placeholder="Property" })
Visual Studio正在将“new {”转换为“new object {”,但这是无效的。为什么intellisense这样做?我错过了什么吗?
答案 0 :(得分:1)
我想这是因为this特定的重载签名:
public static MvcHtmlString TextBoxFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
Object htmlAttributes
)
毕竟,htmlAttributes
必须有某种类型的声明,Object
是他们选择的最低公分母,因为dynamic
不是最初编写这些方法时可用。
这肯定是令人讨厌的 - 但是Intellisense只是在做它的工作:)