解决MVC视图中的强类型逻辑冲突
本文关键字:冲突 强类型 MVC 视图 解决 | 更新日期: 2023-09-27 18:25:49
在我的视图中,我想使用Rows和Columns等方法循环浏览DataTable,这样我就可以动态填充HTML表。为此,我在System.Data.DataTable.中强键入了Razor视图
@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对象传递给View:
public ActionResult Index (string tableName)
{
DimensionY newMemSet = new DimensionY();
newMemSet.getDimMembers(tableName);
return View(newMemSet);
}
因此,如果我将View强键入到我自己的模型中,我似乎失去了System.Data.DataTable给我的Rows和Columns方法。但如果我将视图强键入到实际的model中,编译器告诉我:
传递到字典中的模型项的类型为"MyProject.Models.DimensionY",但此字典需要类型为"System.Data.DataTable"的模型项。
我如何在自己的模型中强键入View,同时使用DataTable类型的方法?
模型必须与传递给视图的对象相匹配。
将其更改为@model MyProject.Models.DimensionY