Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将MVC模型转换为数据集?_C#_Asp.net Mvc_Casting - Fatal编程技术网

C# 如何将MVC模型转换为数据集?

C# 如何将MVC模型转换为数据集?,c#,asp.net-mvc,casting,C#,Asp.net Mvc,Casting,我正在尝试将项目的一个模型转换为数据集。在发送dt返回之前,我需要将其转换为Person,否则它会产生无意义的输出 但我不确定是先将每个属性转换为我的模型人,然后再返回,还是需要将datatable dt转换为我的模型 public ActionResult Index() { DataModel dt = new DataModel(); using (SqlConnection sqlcon = new SqlConnection(c

我正在尝试将项目的一个模型转换为数据集。在发送dt返回之前,我需要将其转换为Person,否则它会产生无意义的输出

但我不确定是先将每个属性转换为我的模型人,然后再返回,还是需要将datatable dt转换为我的模型

 public ActionResult Index() {

            DataModel dt = new DataModel();



            using (SqlConnection sqlcon = new SqlConnection(connectionString)) {
                sqlcon.Open();
                SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Person", sqlcon);
                sqlDa.Fill(dt);
            }

            return View(dt);
        }
索引视图:

@model System.Data.DataTable

@{
    Layout = null;
}

<table class="table table-bordered table-striped table">
    <tr>
        <th>Name</th>
        <th>Surname</th>
    </tr>
    @for (int i = 0; i < Model.Rows.Count; i++)
    {
        <tr>
            <td> @Model.Rows [i][1] </td>
            <td> @Model.Rows [i][2] </td>

        </tr>
    }
</table>
<hr>
<a href="@Url.Action("Create","Renter")">Add Person</a>
有人能帮我吗


谢谢大家!

您需要使用sqlDa.Filldt,Person将表的数据填充到数据集;并设置为通过返回Viewdt.Tables[个人]查看

您可以将代码更改为

public ActionResult Index()
        {

            DataSet dt = new DataSet();



            using (SqlConnection sqlcon = new SqlConnection("ABC"))
            {
                sqlcon.Open();
                SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Person", sqlcon);
                sqlDa.Fill(dt, "Person");
            }

            return View(dt.Tables["Person"]);
        }
并将您的cshtml更改为

<table class="table table-bordered table-striped table">
    <thead>
       <tr>
          @foreach (System.Data.DataColumn col in Model.Columns)
          {
             <th>@col.Caption</th>
          }
       </tr>
    </thead>
    <tbody>
    @foreach(System.Data.DataRow row in Model.Rows)
    {
       <tr>
          @foreach (var cell in row.ItemArray)
          {
             <td>@cell.ToString()</td>
          }
       </tr>
    }      
    </tbody>
</table>

将数据集转换为MVC模型?@HienNguyen我该如何进行该操作?您的标题是将模型转换为数据集,我想确认你想要什么?@HienNguyen我不确定,但我想我需要在返回视图之前将我的模型转换为dataTable。在MVC中,你不应该将Dataset/dataTable返回视图谢谢你的回答,但这一行是sqlDa.Filldt,Person;给出错误参数1:无法从'System.Data.DataTable'转换为'System.Data.DataSet',此行为dt.Tables[Person]给出此错误消息DataTable不包含“Tables”的定义,并且找不到接受“DataTable”类型的第一个参数的可访问扩展方法“Tables”?是否更改为DataSet dt=new DataSet?是的,我更改了它。没有生成错误,但我再次获得相同的无意义输出System.Data.DataRowCollection[I][1]谢谢它工作正常!无意义输出的原因只是cshtml或两者?控制器和cshtml都有问题,如果问题已解决,您可以将答案标记为已接受谢谢