Asp.net mvc 如果没有IEnumerable,如何迭代foreach
如果没有IEnumerable,如何迭代foreach 回购信用证Asp.net mvc 如果没有IEnumerable,如何迭代foreach,asp.net-mvc,model-view-controller,Asp.net Mvc,Model View Controller,如果没有IEnumerable,如何迭代foreach 回购信用证 public Employee GetEmployee(int id) { var x = (from n in db.Employee where n.Emp_Id==id select n); return x.FirstOrDefault(); } 控制器
public Employee GetEmployee(int id)
{
var x = (from n in db.Employee
where n.Emp_Id==id
select n);
return x.FirstOrDefault();
}
控制器
public ActionResult GetEmpById(int id)
{
var x = ObjRepo.GetEmployee(id);
return View(x);
}
Index.cshtml
这里我得到了一个错误,传递到字典中的模型项的类型是“Mvc_应用程序.Models.Employee”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[Mvc_应用程序.Models.Employee]”的模型项
@model IEnumerable<Mvc_Application.Models.Employee>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Email)
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
</tr>
}
</table>
@model IEnumerable
@DisplayNameFor(model=>model.Email)
@foreach(模型中的var项目){
@DisplayFor(modelItem=>item.Email)
}
这是因为您要将单个对象传递给视图。在视图中,您正在接受员工的IEnumerable
改变看法
@model Mvc_Application.Models.Employee
@* your code *@
如果此页面旨在显示单个员工的数据,则其模型应为@model
Mvc\u Application.Models.employee
您在多个位置混合了列表和单例。首先想想你真正想要的是什么。你将一个员工
返回到一个需要一个员工
集合的视图,你有一个双返回
。如图所示的代码甚至没有使用视图…请检查我的代码我只是updated@MDmohi:请按照我的建议更新view.cshtml
文件中的代码。它将作为编译器错误消息运行错误:CS1579:foreach语句无法对“Mvc_Application.Models.Employee”类型的变量进行操作,因为“Mvc_Application.Models.Employee”不包含“GetEnumerator”的公共定义。为什么要使用for循环。因为它只有一封电子邮件。所以只需使用@Html.DisplayNameFor(model=>model.Email)
并删除您的foreach循环
我知道有很多列,我删除了所有其他列。ColumsLz查看我更新的code@MDmohi您希望在视图中显示什么,是员工列表还是单个员工?