我有以下结构:
public class MyType
{
public int id { get; set; }
public string name { get; set; }
}
public class MyViewData : ObjetoViewModel
{
public List<MyType>[] listParams { get; set; }
}
有了这个,我在MyType
数组中加载了5个listParams
类型的列表。
我正在尝试访问第一个列表的第一个id
到我的视图中,但我没有取得任何成功。我想尝试像:
<%: Html.Label(Model.listParams[0]. ???? )%></td>
但我无法达到价值
答案 0 :(得分:1)
要在数组元素y
打印列表的元素x
,您只需要以下内容:
<%: Model.lstParams[x][y].id %>
Html.LabelFor
用于生成文本标签(默认情况下)显示输入所代表的属性的名称,其中输入将是表示属性的表达式,不属性的值,这是你想要产生的。
答案 1 :(得分:0)
因此,您希望使用Html.Label助手的原因是因为它生成了与您的属性名称匹配的标签。
如果你有一个MyType
作为你的模型,它会这样做:
<label for="id">id</label>
<input type="text" name="id" id="id" value="Some value"/>
通过使用阵列,您可能会失去这种好处,但如果需要,您仍然可以使其工作。如果您尝试将数据发回,这就是您希望它发挥作用的原因。
<% for (int i = 0; i < Model.lstParams; i++) { %>
<%: Html.LabelFor(m => m.lstParams[i].id) %>
<%: Html.TextBoxFor(m => m.lstParams[i].name) %>
<% } %>