c# MVC后台传送 DataTable给前台接收

后台controller

public actionresult  table(string mo)

{

DataTable dt = new DataTable("Data");

string colNo = "No";//固定栏位
string colSN = "SN";//固定栏位
dt.Columns.Add(colNo);
dt.Columns.Add(colSN);

...

....

...//根据MO查询出来数据储存到table中去,数据解析出来可能会出现不同的栏位

 DataRow dr_CPU = dt.NewRow();//新增三行
 DataRow dr_CPI = dt.NewRow();
 DataRow dr_CPK = dt.NewRow();                    
   dr_CPI[colSN] = "CPI";//新增到SN列下面
   dr_CPU[colSN] = "CPU";
   dr_CPK[colSN] = "CPK";

 Session["DataTable"] = dt;


            return View(dt);

}

如下为命名为table.cshtml的view

@model System.Data.DataTable    //接收类型为DataTable

<table id="table11"  style=" text-align:center;border-collapse:collapse;width:auto" border="1"   >
    <tr style="font-size:14px;font-weight:bold;background-color:#dcc549">
       
        @foreach (var col in Model.Columns)
        {
            <td>@col</td>
        }
    </tr>
    
   
    @foreach (System.Data.DataRow item in Model.Rows)
{
    <tr>
               
       @foreach (var rows in item.ItemArray)
        {
           if (item.ItemArray[1] == "CPK") //设置CPK栏位的样式,如果识别出栏位为CPK,则字体加粗
           {
             <td @Html.Raw("style='font-size:14px;font-weight:bold;'")>@rows</td>
           }
       else
           {
            <td @Html.Raw("style='font-size:10px;'")>@rows</td>
           }
        }
    </tr>          
}
</table>

关于Html.Raw自己的见解
可以将带有Html标签的字符串,转换成Html标签输出
@{
    var a = "<script>alert('测试成功')</script>";
}
<html>
<body>
<p>
    @Html.Raw(a)
</p>
</body>
</html>
点击测试可以弹出提示框,测试成功

原文:https://blog.csdn.net/ai_feng123/article/details/78962118

猜你喜欢

转载自blog.csdn.net/qingkaqingka/article/details/85045921