在我的视图中,我想使用行和列等方法遍历DataTable,以便我可以动态填充HTML表。为此,我强烈键入了我的Razor View到System.Data.DataTable。
@model System.Data.DataTable
但是为了处理我使用直接ADO.NET从SQL Server中提取的数据 - 我构建了一个实际的Model Class,它返回了我想要循环的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 Model Class,然后将DataTable对象传递给View:
public ActionResult Index (string tableName)
{
DimensionY newMemSet = new DimensionY();
newMemSet.getDimMembers(tableName);
return View(newMemSet);
}
因此,如果我强烈键入View到我自己的模型,我似乎松开了System.Data.DataTable给我的Rows和Columns方法。但是如果我强烈地将View输入到实际模型中,编译器会告诉我:
传递到字典中的模型项的类型为' MyProject.Models.DimensionY',但此字典需要类型为' System.Data.DataTable'的模型项。
我怎样才能强烈地将View输入到我自己的模型中,并且使用DataTable类型的方法使用相同的类型?
答案 0 :(得分:1)
模型必须匹配传递给视图的对象。
将其更改为@model MyProject.Models.DimensionY