2014-10-08 62 views
0

在我的視圖中,我想使用行和列之類的方法遍歷DataTable,以便動態地填充HTML表。爲此,我強烈地將我的Razor視圖鍵入System.Data.DataTable。在MVC視圖中解決強類型邏輯衝突

@model System.Data.DataTable 

但爲了處理數據 - 這我從SQL Server使用ADO.NET直拉 - 我建立了一個實際的模型類,它返回非常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'。

我怎樣才能強制類型視圖到我自己的模型和相同的類型使用DataTable類型的方法?

回答

1

該模型必須與您傳遞給視圖的對象相匹配。

更改爲@model MyProject.Models.DimensionY