【发布时间】:2014-05-15 13:15:01
【问题描述】:
我有一个像这样的Major 模型:
public int Id { get; set; }
public string MajorName{ get; set; }
public string Password { get; set; }
public System.DateTime RegisterDate { get; set; }
public string StudentId { get; set; }
public string State { get; set; }
public int FacultyId { get; set; }
public int MajorId { get; set; }
public HttpPostedFileBase ImgFile { get; set; }
所以我的存储库中有一个类似的方法用于上述模型:
public Major FindMajorById(int id)
{
return _dbcontext.Majors.Find(id);
}
在我看来,我传递了 id,我需要专业的名称:
<td>
@{
EducationRepositor.MajorRepository objmajor=new MajorRepository();
}
@Html.DisplayFor(objmajor.FindMajorById(modelItem => int.Parse(item.MajorId)).MajorName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Degree)
</td>
但我在这一行的视图中出现错误:
@Html.DisplayFor(objmajor.FindMajorById(modelItem => int.Parse(item.MajorId)).MajorName)
我的错误:
参数类型 lambda 表达式不能分配给参数类型 int
【问题讨论】:
-
是的,您的
FindMajorById方法采用int,并且您提供了一个lambda 表达式。你希望它做什么? -
我想显示我的专业名称而不是ID,
-
那么我如何传递 lambda 提供的专业的 id?
-
所以改变你的方法来接受一个表达式,或者改变你对该方法的调用来传递一个 int ...
标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 lambda