数据库表包含以下字段:
fld_column1
fld_column1_item_1
fld_column1_item_2
fld_column1_item_3
fld_column2
fld_column2_item_1
fld_column2_item_2
fld_column2_item_3
fld_column3
fld_column3_item_1
fld_column3_item_2
fld_column3_item_3
我在控制器中这样做了:
ViewBag.Columns = from col in _db.tbl_columns
select col;
return View();
在视图中我这样做了:
<% foreach (tbl_columns col in (IEnumerable)ViewBag.Columns)
{ %>
<%= col.fld_column1_item1 %>
<%= col.fld_column2_item1 %>
<%= col.fld_column3_item1 %>
<% } %>
现在我的问题非常简单:是否可以添加一个自动化“column1”,“column2”等的变量?我怎么能用呢?
答案 0 :(得分:1)
好像你可以改变你的表模式,这在那时很容易做到。
新表架构:
Id Column Item ParentId
1 1 null null
2 1 1 1
3 1 2 1
3 1 3 1
4 2 null null
5 2 1 4
6 2 2 4
6 2 3 4
7 3 null null
8 3 1 7
9 3 2 7
9 3 3 7
现在,您可以通过以下方式迭代它们(伪造的代码):
foreach (var rows in columns)
{
foreach (var row in rows)
{
<%= row.Item %>
}
}
答案 1 :(得分:0)
我同意其他人的意见,你应该使用视图模型。但是,使用当前表结构,您仍需要遍历模型并显示每个属性。如果您能够更改数据库模式,我会按照乔治·斯托克的建议将其展平。