如何将动态列表从DataTable返回到控制器视图?

时间:2019-07-18 05:40:56

标签: c# asp.net-core datatable

我有一个存储过程stp_GetContractBillingDetailReportEquinoxByResultGrouping_Vivek,它提供了动态数据。数据的列可能根据开始日期和结束日期参数而不同。例如:-如果开始日期参数为1/1/2018,结束日期参数为31/1/2018,则结果仅提供一列,即2018年1月。类似地,如果开始日期参数为1/1/2018,结束日期参数为31/12/2019结果提供了从2018年1月到2019年12月的24列。现在,我创建了DataTable,该数据表必须返回所有列表才能在View中显示。如何将该列表返回到控制器视图?

我的控制器代码是:

[HttpPost]
        public async Task<IActionResult> GetContractBillingList([FromBody] ContractBillingExportToExcelSearchViewModel model)
        {
             var contractBillingList =  
   ReportService.DatatableContractBilling(model);
            return Ok(contractBillingList);
        }

我的c#服务代码为:


public DataTable DatatableContractBilling(ContractBillingExportToExcelSearchViewModel model)
        {



            StringBuilder strSQL = new StringBuilder();


                strSQL.AppendFormat(@"stp_GetContractBillingDetailReportEquinoxByResultGrouping_Vivek");


            SqlParameter[] _parameters = new SqlParameter[2];
            _parameters[0] = new SqlParameter("@PeriodStart", model.FromDate);
            _parameters[1] = new SqlParameter("@PeriodEnd", model.ToDate);


            DataTable dt = _dapperRepository.ExecuteDataTableProc(strSQL.ToString(), _parameters);
            return dt;

        }

1 个答案:

答案 0 :(得分:0)

您可以像

那样遍历DataTable
<table>
    <tr>
        @foreach (System.Data.DataColumn column in Model.Columns)
        {
            <th>
                @column.ColumnName
            </th>
        }
    </tr>
    <tbody>
        @foreach (System.Data.DataRow row in Model.Rows)
        {
            <th>
                @foreach (var cell in row.ItemArray)
                {
                    @cell.ToString();
                }
            </th>
        }
    </tbody>
</table>