【发布时间】:2014-10-08 11:18:28
【问题描述】:
在我的视图中,我想使用行和列等方法循环遍历 DataTable,以便动态填充 HTML 表。为此,我将 Razor 视图强类型化为 System.Data.DataTable。
@model System.Data.DataTable
但是为了处理数据——我使用直接 ADO.NET 从 SQL Server 提取数据——我构建了一个实际的模型类,它返回我想在视图上循环的那个 DataTable。
namespace MyProject.Models
{
public Class DimensionY
{
public DataTable getDimMembers(string tableName)
{
//GET DATA FROM SQL AND PUT IT ONTO someDataTable
return someDataTable;
}
}
}
然后我的 HomeController 调用上面显示的这个 DimensionY 模型类,然后将一个 DataTable 对象传递给视图:
public ActionResult Index (string tableName)
{
DimensionY newMemSet = new DimensionY();
newMemSet.getDimMembers(tableName);
return View(newMemSet);
}
因此,如果我将视图强输入到我自己的模型中,我似乎会失去 System.Data.DataTable 提供给我的行和列方法。但是,如果我将视图强类型化为实际模型,编译器会告诉我:
传入字典的模型项是“MyProject.Models.DimensionY”类型,但该字典需要一个“System.Data.DataTable”类型的模型项。
我怎样才能在我自己的模型中强类型一个 View 并在同一类型中使用 DataTable 类型的方法?
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor