2012-03-07 124 views
0

我已創建類函數返回的DataTable如何在.cshtml頁面MVC3中創建Class對象?

namespace Office365 
{ 
    public class Office365 
    { 
     public DataTable GetQAData() 
      { 
       return Datatable; 
      } 
    } 
} 

此功能使用Controlller和渲染使用ViewBag.Content這樣

數據在.cshtml

 @Html.Raw(ViewBag.QAData) 

在控制器代碼:

using Office365; 
    Office365 con = new Office365(); 

    StringBuilder sb = new StringBuilder(); 

     DataTable dt = con.GetQAData(); 
     int i = 1; 
     foreach (DataRow dr in dt.Rows) 
     { 
      sb.append("<div></div>") 
     } 

     ViewBag.QAData = sb.ToString(); 

但這是可能的調用.cshtml上的類對象,並將我的DataTable呈現爲Div?我的意思是直接在.cshtml中編寫代碼

回答

2

我會用你的行集合創建一個ViewModel。 然後從頁面開始,我將循環它並創建html。 像這樣

public calss DataViewModel 
{ 
    public IList<MyRow> Rows {get;set;} 
} 

從控制器

var model = new DataViewModel() 
    model.Rows = new List<MyRow>(); 
    DataTable dt = con.GetQAData(); 
    int i = 1; 
    foreach (DataRow dr in dt.Rows) 
    { 
     var row = new MyRow(); 
     /* populate the the MyRow class */ 
     Rows.Add(row); 
    } 

從視圖

@foreach(var item in Model.Rows) 
    { 
     <div>@item.MyField</div> 
    } 

我希望你的想法

+0

要快速測試你code.come短的時間。 MVC中的新角色 – Jigs 2012-03-07 09:56:46

+0

。當我在剃刀頁面使用模型。獲得Object reference null錯誤。代碼'@model WebNexpo.Controllers.DataViewModel @foreach(Model.Rows中的var item){@ item.ID};'這是錯誤的嗎? – Jigs 2012-03-07 10:56:29

+0

它應該是正確的。也許你沒有初始化控制器中的行?在那裏發生的錯誤 – Iridio 2012-03-07 10:59:38