2012-03-07 5 views
0

iはControlllerでのDataTable.cshtmlページのClassオブジェクトの作成方法MVC3?

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

この機能の使用を返し、コントローラコードで.cshtml

 @Html.Raw(ViewBag.QAData) 

ではこの

ようViewBag.Contentを使用してデータをレンダリングする機能を持つクラスを作成します:

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を作成します。ビューからコントローラ

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); 
    } 

からこの

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

よう 何か

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

私はあなたのアイデア

+0

があなたのcode.come速い短時間のテストに軌道に乗る願っています。 – Jigs

+0

MVCの新しいコーナーです。私は剃刀のページでモデルを使用するとき。オブジェクト参照nullエラーが発生しました。コード@model WebNexpo.Controllers.DataViewModel @foreach(Model.Rowsのvarアイテム){@ item.ID}; 'これは間違っていますか? – Jigs

+0

それは正しいはずです。コントローラの行を初期化していないのでしょうか?正確にエラーが発生します – Iridio

関連する問題