【发布时间】:2020-01-28 17:14:26
【问题描述】:
我使用 HtmlHelper(在 Asp.Net MVC 4.5 中)为每个类属性创建多个经过验证的字段。现在,我需要依次调用它们。
@Html.LabelFor(m => m.SomeField)
@Html.EditorFor(m => m.SomeField)
@Html.ValidationMessageFor(m => m.SomeField)
因此,我宁愿只将“m => m.SomeField”传递给 ViewHelper 并让它变成这样。
@helper FieldHelper([???] ValueINeed)
{
@Html.LabelFor(ValueINeed)
@Html.EditorFor(ValueINeed)
@Html.ValidationMessageFor(ValueINeed)
}
// And then call the helper with...
ViewHelper.FieldHelper(m => m.SomeField)
我的问题是:这可能吗?变量是什么类型的? Microsoft 文档说它是“Expression
【问题讨论】:
-
那么添加这个额外的抽象层有什么好处呢?
ViewHelper.FieldHelper有更多的字符,你得到了什么? -
使查看代码更容易浏览。此外,助手做了一些这里没有展示的事情,主要是为公司品牌 UI 提供布局。
-
@CodingYoshi 我注意到我忘记了示例中的其他两个字段,很抱歉造成混淆。
-
我会通过
Html.LabelCustomFor之类的扩展来完成,并复制Html.LabelFor的签名。在这个新方法中添加您的自定义内容。
标签: c# asp.net asp.net-mvc