很抱歉,标题有点模糊。我还是asp mvc& EF。这是我的问题。我的DB有点像这样。
Employee
- ID
- Name
- Address
EmployeeJob
- EmployeeID
- JobID
- StartDate
JobTypes
- ID
- JobName
我想要一个创建表单,它将显示所有Employee字段以及用户可以选择的JobTypes列表。然后我将结果发回控制器并更新数据库。我已经开始研究自定义视图模型,但我仍然不确定如何将它们放在一起并使其工作。谢谢,
答案 0 :(得分:1)
创建一个特定的视图模型,该模型反映视图显示界面所需的数据。在这种情况下,员工信息加上当前关系所代表的工作集合。添加显示作业菜单所需的信息 - 在这种情况下,我将使用SelectListItems的枚举(Value = ID,Text = JobName)。
public class EmployeeViewModel
{
public Employee Employee { get; set; }
public IEnumerable<string> CurrentJobs { get; set; }
public int JobType { get; set; } // placeholder for post back value from menu
public IEnumerable<SelectListItem> JobTypes { get; set; }
}
根据您的目的,您可能需要为该帖子设置不同的模型。
public class EmployeeJobAddition
{
public Employee Employee { get; set; }
public int JobType { get; set; }
}
或(这可能会争论视图模型中JobTypes的不同集合)
public class EmployeeJobChange
{
public Employee Employee { get; set; }
public IEnumerable<int> CurrentJobTypes { get; set; } // returns values to keep
public IEnumerable<int> JobTypes { get; set; } // new jobs to add
}
使用输入名称设置表单,以使用视图模型提供的数据反映要回发的模型。