Asp.net mvc 4 从控制器发送多个数据表,并在视图asp.net mvc 4中迭代这些数据表

Asp.net mvc 4 从控制器发送多个数据表,并在视图asp.net mvc 4中迭代这些数据表,asp.net-mvc-4,Asp.net Mvc 4,在我的ASP.NETMVC4中,我想将多个数据表从一个控制器发送到一个视图。然后在该视图中迭代这些数据表。我怎么做?我是mvc世界的新人 谢谢你的期待 更新-我知道如何将单个数据表发送到视图并进行迭代。但我需要知道涉及多个表时的技巧 更新-我的视图是局部视图。使用模型来表示数据是更好的做法,建议使用模型。这就是MVC的要点。当然,您可以使用datatable,但为什么 请记住,datatable只包含单个表数据。您要么有一个包含多个表的数据集,要么只有一个数据表的一般集合 如果您使用的是数据集

在我的ASP.NETMVC4中,我想将多个数据表从一个控制器发送到一个视图。然后在该视图中迭代这些数据表。我怎么做?我是mvc世界的新人

谢谢你的期待

更新-我知道如何将单个数据表发送到视图并进行迭代。但我需要知道涉及多个表时的技巧


更新-我的视图是局部视图。

使用模型来表示数据是更好的做法,建议使用模型。这就是MVC的要点。当然,您可以使用datatable,但为什么

请记住,datatable只包含单个表数据。您要么有一个包含多个表的数据集,要么只有一个数据表的一般集合

如果您使用的是数据集

使用属性创建模型,然后针对每个表、每行遍历数据集中的数据表,并在集合中添加为当前行/表创建的模型。最后,将该集合传递回视图

要遍历数据集中的表

DataSet ds = this.GetDataSet();
            foreach (DataTable currentTable in ds.Tables)
            {
                foreach (DataRow currentRow in currentTable.Rows)
                {
                    // looping through each row within this datatable
// at this point, you need to then map the current row data to the Model. I'll let you deal with this
                }
            }

如果您可以显示当前正在使用的一些代码,那就太好了。

最好使用模型来表示数据。这就是MVC的要点。当然,您可以使用datatable,但为什么

请记住,datatable只包含单个表数据。您要么有一个包含多个表的数据集,要么只有一个数据表的一般集合

如果您使用的是数据集

使用属性创建模型,然后针对每个表、每行遍历数据集中的数据表,并在集合中添加为当前行/表创建的模型。最后,将该集合传递回视图

要遍历数据集中的表

DataSet ds = this.GetDataSet();
            foreach (DataTable currentTable in ds.Tables)
            {
                foreach (DataRow currentRow in currentTable.Rows)
                {
                    // looping through each row within this datatable
// at this point, you need to then map the current row data to the Model. I'll let you deal with this
                }
            }

如果您可以显示当前正在使用的一些代码,那就太好了。

最好的方法是创建一个类作为您的ViewModel(一个为您的视图服务并为视图提供所需数据的类),然后该类可以根据需要由N个属性组成

然后,您在控制器中所需要的就是创建这个类的一个新对象,填写您的类属性(比如您想要的4个datatables),并将这个类对象发送到您的视图中,这样您就可以轻松地在表中进行迭代

示例:

public class MyDataViewModel()
{

  public DataTable FirstTable {get; set;}
  public DataTable SecondTable {get; set;}
  public DataTable ThirdTable {get; set;}
  public DataTable ForthTable {get; set;}
}
在控制器内,创建一个新对象并填充属性内的数据

var myDataObject = new MyDataViewModel();
myDataObject.FirstTable = // your First Table  data ;
myDataObject.SecondTable = // your Second Table data ;
myDataObject.ThirdTable = // your Third Table  data ;
myDataObject.ForthTable = // your Forth Table  data ;

return view(myDataObject);
注意:您的最终表示将取决于您的情况,我猜您不需要数据表,最好创建
列表
,它将数据保存到您的视图中


更新:要创建
列表
项而不是数据表,您将把ViewModel类属性修改为
列表
而不是数据表,我想这很简单:)。

最好的方法是创建一个充当ViewModel的类(一个为您的视图提供服务并为视图提供所需数据的类),则该类可以根据需要由N个属性组成

然后,您在控制器中所需要的就是创建这个类的一个新对象,填写您的类属性(比如您想要的4个datatables),并将这个类对象发送到您的视图中,这样您就可以轻松地在表中进行迭代

示例:

public class MyDataViewModel()
{

  public DataTable FirstTable {get; set;}
  public DataTable SecondTable {get; set;}
  public DataTable ThirdTable {get; set;}
  public DataTable ForthTable {get; set;}
}
在控制器内,创建一个新对象并填充属性内的数据

var myDataObject = new MyDataViewModel();
myDataObject.FirstTable = // your First Table  data ;
myDataObject.SecondTable = // your Second Table data ;
myDataObject.ThirdTable = // your Third Table  data ;
myDataObject.ForthTable = // your Forth Table  data ;

return view(myDataObject);
注意:您的最终表示将取决于您的情况,我猜您不需要数据表,最好创建
列表
,它将数据保存到您的视图中


更新:若要创建
列表
项而不是数据表,您将把ViewModel类属性修改为
列表
而不是数据表,我想这很简单:)。

无论何时在MVC中创建视图,都将模型/视图模型绑定到该视图。考虑到您的需求,您需要首先创建相应数据表的视图模型/模型,将数据表中的数据绑定到相应模型/视图模型的列表中,然后将它们传递到视图中。要迭代多个数据表,需要使用不同模型的部分视图。)

无论何时在MVC中创建视图,都会将模型/视图模型绑定到该视图。考虑到您的需求,您需要首先创建相应数据表的视图模型/模型,将数据表中的数据绑定到相应模型/视图模型的列表中,然后将它们传递到视图中。要迭代多个数据表,需要使用不同模型的部分视图。)

通常,强类型模型优于
数据表
。但从技术上讲,
DataTable
是一个与其他对象类似的对象,因此没有理由不能将其用作模型。您只需像任何MVC教程中的任何其他模型一样引用其属性。你有没有试过?或者你是在预习阶段,真的应该寻找一些MVC演练吗?请检查我下面的答案:您能否向我们展示如何将数据表发送到视图,以及视图和控制器的一些代码。您是否尝试返回列表以查看并遍历它?@freshbm,orevodai,amiparle ki ar tore jigaitam!通常,强类型模型优于
数据表
。但从技术上讲,
DataTable
是一个与其他对象类似的对象,因此没有理由不能将其用作模型。您只需像任何MVC教程中的任何其他模型一样引用其属性。你有没有试过?或者你是在预习阶段,真的应该寻找一些MVC演练吗?请检查我下面的答案:您能否向我们展示如何将数据表发送到视图,以及视图和控制器的一些代码。您是否尝试返回要查看的列表并将其删除