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")
)
)

浙公网安备 33010602011771号