Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如果没有IEnumerable,如何迭代foreach_Asp.net Mvc_Model View Controller - Fatal编程技术网

Asp.net mvc 如果没有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(); } 控制器

如果没有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 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您希望在视图中显示什么,是员工列表还是单个员工?