在reflection中循环模型属性,然后使用Html帮助程序显示。 如何获得具体房产?
我们有一个MVC4 ASP.Net站点,我们试图使用reflection来循环模型的属性,并使用Html助手显示名称/值/和其他信息。
我们有一个自定义的Html Helper,我们从下面的方法传递参数。
@foreach (PropertyInfo prop in Model.GetType().GetProperties()) { Html.LabelFor( ?? Any ideas ?? ) @SuperEditorFor.ReflectiveEditorFor(prop, Model) @Html.ValidationMessageFor(model => model.GetType().GetProperty(prop.Name)) }
我们已经尝试在ValidationMessageFor
中输入“property”(quote),但正如我们所怀疑的那样,它需要实际的具体属性,而不是reflection的propertyInfo对象。
有谁知道这是否可能? 有没有人试过这样做呢?
您不需要使用通用实现( EditorFor
, DisplayFor
…),只需使用非generics实现, Editor
, Display
……
这将工作得很好,你会得到validation,自动绑定和其他一切,整个九码……
@foreach (PropertyInfo prop in Model.GetType().GetProperties()) { @Html.Label(prop.Name) @Html.Editor(prop.Name) @Html.ValidationMessage(prop.Name) }
如果你想试验一般的实现,这里有一篇很棒的博客文章,介绍如何做到这一点
我相信你想要它的方式是不可能的。 尝试使用此代替:
@Html.ValidationSummary()