0

我正在尝试使用字符串模型属性名称列表来制作表单。当使用这样的脚手架代码时,会生成:

@Html.HiddenFor(model => model.modelRecId)

我认为使用反射可以得到与这样的代码相同的结果:

@Html.HiddenFor(model => model.GetType().GetProperty("modelRecId").GetValue(model, null))

可悲的是 c# 不喜欢这种语法,产生了这个错误:
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

关于如何使用给定属性名称作为字符串的内置 html 助手的任何想法?

编辑

List<string> props = new List<string>();
props.Add("modelRecId");
props.Add("Name");
props.Add("Description");
//... etc

foreach (string prop in props)
{
    @Html.LabelFor(Model.GetType().GetProperty(prop).GetValue(Model, null), prop)
    @Html.EditorFor(Model.GetType().GetProperty(prop).GetValue(Model, null))
    @Html.ValidationMessageFor(Model.GetType().GetProperty(prop).GetValue(Model, null))
}

上面的代码不起作用。有没有办法做这样的事情?

4

1 回答 1

1

简单地@Html.Hidden("SomeProperty")

于 2013-07-26T16:12:23.110 回答