我的代码更像是创建一个引擎,当传递一个表名变量时,它将动态构造表。这是我已经开始研究的代码。在我的控制器中,
public ActionResult ViewTable(string tablename)
{
ScsContext context = new ScsContext();
List<string> columnNames = new List<string>();
var html = "<table><thead><tr>";
switch(tablename)
{
case "table1":
columnNames = typeof(table1).GetProperties().Select(a => a.Name).ToList();
foreach(var c in columnNames)
{
html += "<td>" + c.ToString() + "</td>";
}
html += "</tr></thead><tbody>";
var rows = from c in context.table1.ToList()
select c;
foreach(var c in rows)
{
foreach(var p in c.GetType().GetProperties())
{
foreach(var s in columnNames)
{
if(p.Name == s.ToString())
{
// How do I get the value here?
}
}
}
}
break;
// more case statements here based on table names
default:
break;
}
// return empty for now
return new EmptyResult();
}
我能够在我的实体中循环我的列的名称,如上所述,现在根据这些值构建我的html表..但是当我现在需要获取值时,我被困了。如何从上面的属性中获取值以根据表名变量构建我的html表?
由于我有更多的用户想要渲染的表格,有没有更简单,更有效的方法呢?
非常感谢,