【问题标题】:Resolving strongly-typing logical conflict in an MVC view解决 MVC 视图中的强类型逻辑冲突
【发布时间】: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


    【解决方案1】:

    模型必须与您传递给视图的对象相匹配。

    改成@model MyProject.Models.DimensionY

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 2021-12-21
      相关资源
      最近更新 更多