Visual Studio 2012 MVC4
您好,
我目前正在为员工开设以下课程,其中包含确定员工年龄的方法:
public class Employee
{
public string firstName { get; set; }
public string lastName { get; set; }
public string empID { get; set; }
public bool isManager { get; set; }
public string empTel { get; set; }
public string empEml { get; set; }
public string empDOB { get; set; }
public string empBio { get; set; }
public int empAge()
{
DateTime birthdate = DateTime.Parse(empDOB);
int age = DateTime.Now.Year - birthdate.Year;
if (DateTime.Now.DayOfYear < birthdate.DayOfYear)
{
age = age - 1;
}
return age;
}
public string empMarketLocation { get; set; }
public double WeeklyHours { get; set; }
public Employee()
{
}
}
}
我最初认为我可以在我的视图中显示方法的结果,其中包含以下行:
@Html.DisplayFor(ModelItem => Model.empAge())
但是,我收到以下错误:
System.Web.Mvc.dll中发生了'System.InvalidOperationException'类型的异常,但未在用户代码中处理
其他信息:模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。
我不确定我是否不能使用HTML Display,或者我只是写错了。有什么想法吗?
由于
答案 0 :(得分:2)
如果empAge
是一个属性而不是方法,则Html.DisplayFor
可以使用empAge
辅助方法。将public int empAge
{
get
{
DateTime birthdate = DateTime.Parse(empDOB);
int age = DateTime.Now.Year - birthdate.Year;
if (DateTime.Now.DayOfYear < birthdate.DayOfYear)
{
age = age - 1;
}
return age;
}
}
更改为属性
@Html.DisplayFor(ModelItem => Model.empAge())
并更改此
@Html.DisplayFor(m => m.empAge)
到这个
{{1}}