RAZOR显示表格数据

asp.net mvc4.0 razor页面获取数据库表记录显示在页面上,页面前段显示字段名必须区分大小写,否则不认识字段名,提示错误信息

1.control类
 public ActionResult ListUser()         {             //TestDataContext db = new TestDataContext();             //IEnumerable<tbUser> model = from u in db.tbUser orderby u.vchUserCode select u;             //return View(model);             try             {                 string strSql = "select VCHUSERCODE,VCHUSERNAME,VCHORGCODE,INTKIND,INTSTATUS," + //VCHPASSWORD,                          "VCHSEX, VCHIDCARD, TSPLATERLOGIN, VCHLATERIP, VCHEMAIL, VCHCREATOR,DATCREATE, VCHDES, DATPASSWORD " +                          "from DBO.TBUSER order by DATCREATE;";                 DbHelper db = new DbHelper();                 DbCommand cmd = db.GetSqlStringCommand(strSql);                 DataSet ds = db.ExecuteDataSet(cmd);                 List<IDictionary> list = ConvertToDictionary(ds.Tables[0]);                 return View(list);             }             catch (Exception ex)             {                 throw new Exception(ex.Message);             }         }         private List<IDictionary> ConvertToDictionary(DataTable dtObject)         {             var columns = dtObject.Columns.Cast<DataColumn>();             var dictionaryList = dtObject.AsEnumerable()                 .Select(dataRow => columns                     .Select(column =>                         new { Column = column.ColumnName, Value = dataRow[column] })                              .ToDictionary(data => data.Column, data => data.Value)).ToList().ToArray();             return dictionaryList.ToList<IDictionary>();         }

2.razor页面
@* @model IEnumerable<Contract.Web.Code.tbUser> *@
@using System.Dynamic
@model List<System.Collections.IDictionary>
 
@{
    ViewBag.Title = "ListUser";
}
 
<h2>ListUser</h2>
 
 
<p>
@Html.ActionLink("刷新", "ListUser")
</p>
        
 
@{
    var result = new List<dynamic>();
 
    foreach (var emprow in Model)
    {
        var row = (IDictionary<string, object>)new ExpandoObject();
        Dictionary<string, object> eachEmpRow = (Dictionary<string, object>)emprow;
 
        foreach (KeyValuePair<string, object> keyValuePair in eachEmpRow)
        {
            row.Add(keyValuePair);
        }
        result.Add(row);
    }
    //var grid = new WebGrid(result);
    
    var grid = new WebGrid(source: result , columnNames:new[]{"VCHUSERCODE","VCHUSERNAME","VCHEMAIL"},
    defaultSort: "VCHUSERCODE", rowsPerPage: 20);
  }
 
@* @if (@Model != null)
 {
     @grid.GetHtml(tableStyle: "grid", headerStyle: "head", alternatingRowStyle: "alt");
 }*@ 
 
 @grid.GetHtml(
   tableStyle: "grid", 
     headerStyle: "head",
   alternatingRowStyle: "alt",
   columns: grid.Columns(
   grid.Column("VCHUSERCODE", "用户编号"),
   grid.Column("VCHUSERNAME", "用户名称"),
    grid.Column("VCHEMAIL", "Email")   
   )
  )
原文地址:https://www.cnblogs.com/qiu18359243869/p/14434758.html