我有一个员工详细信息表,其中有一个名为Role的列。每个员工都可以拥有多个角色。目前以下是我从SQL获取的记录集,我希望使用DETAILS作为脚手架在MVC 4中显示。
Emp_ID | Emp_Name |角色
E101 |员工1 |主
E101 |员工1 |次级
那么如何为此编写LINQ和View代码。
答案 0 :(得分:2)
试试这个:
拥有Employee的模型类
public Employee
{
public int EmployeeID{get;set;}
public string EmployeeName{get;set;}
public string Role{get;set;}
}
在控制器中:
public ActionResult List()
{
DataSet ds=db.GetEmployees();
var emp=( from t in ds.Tables[0].AsQuerable()
//replace column names correctly with your db columns.
select Employee{ EmployeeID=Int32.Parse(t["EmployeeID"].ToString()),
EmployeeName=t["EmployeeName"].ToString(),
Role=t["Role"].ToString()}).ToList<Employee>();
return View(emp);
}
使用&#34;列表&#34;添加视图级联类型,强类型为Employee模型,它将自动生成视图模型。
查看:
@model IEnumerable<Models.Employee>
@{
ViewBag.Title = "view";
}
<h2>view</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.EmployeeID)
</th>
<th>
@Html.DisplayNameFor(model => model.EmployeeName)
</th>
<th>
@Html.DisplayNameFor(model => model.Role)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.EmployeeID)
</td>
<td>
@Html.DisplayFor(modelItem => item.EmployeeName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Role)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
</table>