我已经从其他两个模型EmployeeViewModel
和Employee
创建了一个视图模型HolidayRequestForm
,因为我需要在一个视图中使用它们。我在显示模型中的数据时遇到问题。
这是我的模特:
public partial class Employee
{
public int EmployeeID { get; set; }
public string FullName { get; set; }
public string EmailID { get; set; }
public string Password { get; set; }
public System.DateTime StartDate { get; set; }
public int RoleID { get; set; }
public int ShiftID { get; set; }
public int AreaID { get; set; }
public int DisciplineID { get; set; }
public int SiteID { get; set; }
public int ALCategory { get; set; }
public Nullable<int> HoursTaken { get; set; }
public Nullable<int> AwardedLeave { get; set; }
public Nullable<int> TotalHoursThisYear { get; set; }
public int HoursCarriedForward { get; set; }
public Nullable<int> EntitlementRemainingThisYear { get; set; }
public string Comments { get; set;}
}
假日申请表模型:
public partial class HolidayRequestForm
{
public int RequestID { get; set; }
public int EmployeeID { get; set; }
public System.DateTime StartDate { get; set; }
public System.DateTime FinishDate { get; set; }
public int HoursTaken { get; set; }
public string Comments { get; set; }
public int YearCreated { get; set; }
public int MonthCreated { get; set; }
public Nullable<int> DayCreated { get; set; }
public Nullable<int> YearOfHoliday { get; set; }
public virtual Employee Employee { get; set; }
}
员工视图模型:
public class EmployeeViewModel
{
public Employee Employee { get; set; }
public List<HolidayRequestForm> HolidayRequestForm { get; set; }
}
这是我的控制器操作:
public ActionResult Details(int? id)
{
Employee employee = db.Employees.FirstOrDefault(emp =>
emp.EmployeeID == id);
List<HolidayRequestForm> holidayRequestForm =
db.HolidayRequestForms.Where(emp => emp.EmployeeID == id).ToList();
EmployeeViewModel employeeViewModel = new EmployeeViewModel()
{
Employee = employee,
HolidayRequestForm = holidayRequestForm,
};
return View(employeeViewModel);
}
我正在尝试在我的视图上实现此模型,但是遇到了麻烦。这是导致troube的视图部分:
@model LotusWorksHT.Models.EmployeeViewModel
<div style=" position:relative;top:40px; border-radius: 0px; border-color: #F47B20; border-style: solid; border-width: 5px; background-repeat: no-repeat; background-position: right; padding: 5px; background-size: contain; background-color:white ">
<h2 align="center">Holiday Requests Record</h2>
<table class="table table-striped">
<tr>
<th>
Start Date
</th>
<th>
Finish Date
</th>
<th>
HoursTaken
</th>
<th>
Comments
</th>
<th>
Year Created
</th>
<th>
Month Created
</th>
<th>
Day Created
</th>
<th>
Year Of Holiday
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(model => model.HolidayRequestForm.StartDate)
</td>
<td>
@Html.DisplayFor(model => model.HolidayRequestForm.FinishDate)
</td>
<td>
@Html.DisplayFor(model => model.HolidayRequestForm.HoursTaken)
</td>
<td>
@Html.DisplayFor(model => model.HolidayRequestForm.Comments)
</td>
<td>
@Html.DisplayFor(model => model.HolidayRequestForm.YearCreated)
</td>
<td>
@Html.DisplayFor(model => model.HolidayRequestForm.MonthCreated)
</td>
<td>
@Html.DisplayFor(model => model.HolidayRequestForm.DayCreated)
</td>
<td>
@Html.DisplayFor(model => model.HolidayRequestForm.YearOfHoliday)
</td>
</tr>
}
</table>
</div>
答案 0 :(得分:1)
尝试更改:
@foreach (var item in Model)
到
@foreach (var item in Model.HolidayRequestForm)
作为它的HolidayRequestForm列表,您要在此处循环浏览。然后尝试更改
model.HolidayRequestForm.StartDate
到
item.StartDate or model => model.StartDate
要去每个属性。