Asp.net mvc CS0121:以下方法或属性之间的调用不明确:
我正在学习MVC中的实体框架 当我将Html.DisplayNameFor()放在foreach循环中Html的第三行时,它给出了以下错误: CS0121:调用在以下方法或 特性: 'System.Web.Mvc.Html.DisplayNameExtensions.DisplayNameFor 及 'System.Web.Mvc.Html.DisplayNameExtensions.DisplayNameFor,mvcapApplication1.Models.Department> 我仔细检查了html标记。但找不到问题 索引视图: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> 我仔细
@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>
}