Html 如何在ASP.NETMVC视图中循环数据表并动态创建表?

Html 如何在ASP.NETMVC视图中循环数据表并动态创建表?,html,asp.net-mvc,razor,Html,Asp.net Mvc,Razor,我想让我的剃须刀代码更加友好。我在datatable(dr)中有100多列,也有100多行 坚持不 销售时点情报系统 身份证件 类型 打包日期时间 @如果(ViewData[“AllEmpData”]!=null) { foreach(System.Data.DataRow dr in(ViewData[“AllEmpData”]作为System.Data.DataTable.Rows) { @dr[“棒号”] @dr[“pos”] @dr[“id”] @dr[“类型”] @dr[“打包日期时

我想让我的剃须刀代码更加友好。我在datatable(dr)中有100多列,也有100多行


坚持不
销售时点情报系统
身份证件
类型
打包日期时间
@如果(ViewData[“AllEmpData”]!=null)
{
foreach(System.Data.DataRow dr in(ViewData[“AllEmpData”]作为System.Data.DataTable.Rows)
{
@dr[“棒号”]
@dr[“pos”]
@dr[“id”]
@dr[“类型”]
@dr[“打包日期时间”]
}
}
我想在foreach循环中做一些类似的事情:

for(i=0; i< column_number; i++){
        <td>
            @dr[column_id[0].toString()]
        </td>
}
for(i=0;i
其中,列号是id=“Parameter\u name”行中的列号。
因此,一般来说,我不想在foreach部分中写下所有参数。

您可以使用
DataTable的
Columns
属性。像这样:

<table id="PS3" class="report">
    <tr id="Parameter_name">
        <td id="stick_no" bgcolor='#F0F0F0'>Stick No</td>
        <td id="pos" bgcolor='#F0F0F0'>Pos</td>
        <td id="id" bgcolor='#F0F0F0'>ID</td>
        <td id="type" bgcolor='#F0F0F0'>Type</td>
        <td id="packing_datetime" bgcolor='#F0F0F0'>Packing DateTime</td>
    </tr>

    @if (ViewData["AllEmpData"] != null)
    {
        var dt = ViewData["AllEmpData"] as System.Data.DataTable;

        foreach (System.Data.DataRow dr in dt.Rows)
        {
            <tr>
                @foreach (System.Data.DataColumn col in dt.Columns)
                {
                    <td>@dr[col.ColumnName].ToString()</td>
                }
            </tr>
        }
    }
</table>

坚持不
销售时点情报系统
身份证件
类型
打包日期时间
@如果(ViewData[“AllEmpData”]!=null)
{
var dt=ViewData[“AllEmpData”]作为System.Data.DataTable;
foreach(System.Data.DataRow dr in dt.Rows)
{
@foreach(System.Data.DataColumn列,在dt.Columns中)
{
@dr[col.ColumnName].ToString()的名称
}
}
}

您也可以通过这种方式创建表头。但是您应该考虑将<代码> DATABATE 转换成控制器中的一个列表,并在<代码>视图< /代码>中使用它。做了我想做的事。在我看来,这应该被标记为答案。干杯
<table id="PS3" class="report">
    <tr id="Parameter_name">
        <td id="stick_no" bgcolor='#F0F0F0'>Stick No</td>
        <td id="pos" bgcolor='#F0F0F0'>Pos</td>
        <td id="id" bgcolor='#F0F0F0'>ID</td>
        <td id="type" bgcolor='#F0F0F0'>Type</td>
        <td id="packing_datetime" bgcolor='#F0F0F0'>Packing DateTime</td>
    </tr>

    @if (ViewData["AllEmpData"] != null)
    {
        var dt = ViewData["AllEmpData"] as System.Data.DataTable;

        foreach (System.Data.DataRow dr in dt.Rows)
        {
            <tr>
                @foreach (System.Data.DataColumn col in dt.Columns)
                {
                    <td>@dr[col.ColumnName].ToString()</td>
                }
            </tr>
        }
    }
</table>