Ehs*_*bar 1 c# asp.net-mvc lambda asp.net-mvc-3 asp.net-mvc-4
我有这样的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; }
Run Code Online (Sandbox Code Playgroud)
所以我在上面的模型库中有这样的方法:
public Major FindMajorById(int id)
{
return _dbcontext.Majors.Find(id);
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我通过了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>
Run Code Online (Sandbox Code Playgroud)
但是我在这一行中看到了错误:
@Html.DisplayFor(objmajor.FindMajorById(modelItem => int.Parse(item.MajorId)).MajorName)
Run Code Online (Sandbox Code Playgroud)
我的错误:
参数类型lambda表达式不能赋值给参数类型int
我怀疑你基本上得到了你的lambda表达式,你的方法调用错误的方法.你可能想要:
@Html.DisplayFor(modelItem => objmajor.FindMajorById(int.Parse(modelItem.MajorId)).MajorName)
Run Code Online (Sandbox Code Playgroud)
换句话说,您正在创建一个lambda表达式,它接受一个模型项,解析其MajorId
属性,调用FindMajorById
,然后使用MajorName
结果的属性.该lambda表达式用作参数DisplayFor
.
我不是MVC专家(无论如何),所以不清楚lambda表达式提供了多少好处,但是 - 你是否真的可以直接调用该方法.
归档时间: |
|
查看次数: |
4488 次 |
最近记录: |