Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 CS0121:以下方法或属性之间的调用不明确:_Asp.net Mvc_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc CS0121:以下方法或属性之间的调用不明确:

Asp.net mvc CS0121:以下方法或属性之间的调用不明确:,asp.net-mvc,entity-framework,asp.net-mvc-4,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,我正在学习MVC中的实体框架 当我将Html.DisplayNameFor()放在foreach循环中Html的第三行时,它给出了以下错误: CS0121:调用在以下方法或 特性: 'System.Web.Mvc.Html.DisplayNameExtensions.DisplayNameFor 及 'System.Web.Mvc.Html.DisplayNameExtensions.DisplayNameFor,mvcapApplication1.Models.Department> 我仔细

我正在学习MVC中的实体框架

当我将Html.DisplayNameFor()放在foreach循环中Html的第三行时,它给出了以下错误:

CS0121:调用在以下方法或 特性: 'System.Web.Mvc.Html.DisplayNameExtensions.DisplayNameFor 及

'System.Web.Mvc.Html.DisplayNameExtensions.DisplayNameFor,mvcapApplication1.Models.Department>

我仔细检查了html标记。但找不到问题

索引视图:

    @model IEnumerable<MvcApplication1.Models.Employee>
@{
    ViewBag.Title = "Index";
}
<div style="font-family">
    <h2>
        Index</h2>
    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
</div>
<table border="1">
    <tr>
        <th> </th>
        <th> </th>
        <th>  </th>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>  </td>
            <td>  </td>
            <td>  @Html.DisplayNameFor(modelItem => item.Name)   </td>
        </tr>
    }
</table>

模型是由实体框架自动生成的

看,我已经更改了答案,这肯定对你有用

public ActionResult Index()
    {
        var employees = db.Employees.Include("Department");
        return View(employees);
    }
你为什么在这里使用BeginForm。移除它

@foreach (var item in Model)
{
        <tr> <td>
        @Html.DisplayFor(modelItem => item.Name)
        </td> <td>
        @Html.DisplayFor(modelItem => item.City)
        </td> <td>
           @Html.DisplayNameFor(modelItem => item.Department.Name)
           </td> <td>
        @Html.ActionLink("Edit", "Edit", new { id = item.Id }) | <input type="submit"  value="Delete" onclick="return confirm('Are you Sure wanna Delete with ID =@item.Id');"/> </td> </tr>
}
@foreach(模型中的变量项)
{
@DisplayFor(modelItem=>item.Name)
@DisplayFor(modeleItem=>item.City)
@DisplayNameFor(modelItem=>item.Department.Name)
@ActionLink(“编辑”,“编辑”,新的{id=item.id})|
}

希望能对您有所帮助。

使用两种型号是错误的。。我很早就改正了。。。我试过你说的。。。如果我使用@model IEnumerable。。那么,您的意思是,第一个表的列没有正确绑定。部门名称未绑定,正在绑定。。我的意思是属性在intellisense中显示..它给出了不明确的调用错误。我认为这是指2个组件。但我不是用2个程序集来引用,我明白了,你必须在lambda表达式中使用Include关键字。只需在lambda表达式中包含Department表。如果你不知道,就在问题中加入行动代码。我会帮你的我已经改变了我的答案看一看。或者在问题中输入控制器代码。所以,它将帮助我。显示您的
部门
类。我最终添加了部门类..1。从Scracth…2创建MVC项目。添加EF 3。添加员工控制器。。。它起作用了…有一些垃圾代码我不幸找不到
@foreach (var item in Model)
{
        <tr> <td>
        @Html.DisplayFor(modelItem => item.Name)
        </td> <td>
        @Html.DisplayFor(modelItem => item.City)
        </td> <td>
           @Html.DisplayNameFor(modelItem => item.Department.Name)
           </td> <td>
        @Html.ActionLink("Edit", "Edit", new { id = item.Id }) | <input type="submit"  value="Delete" onclick="return confirm('Are you Sure wanna Delete with ID =@item.Id');"/> </td> </tr>
}