如何在.cshtml页面MVC3中创建Class对象?

时间:2012-03-07 09:28:47

标签: c# asp.net-mvc asp.net-mvc-3 razor

我创建了一个带有函数的类来返回DataTable

 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

中编写代码

1 个答案:

答案 0 :(得分: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>
    }

我希望你明白这个想法