我创建了两个模型名称作为公司和代理,并且它们之间应该存在一对多关系,因为每个公司可以有多个代理但每个代理与一个公司相关。这些模型如下:
Public class Company
{
Public int ComapnyId {get;set;}
Public String CompanyName{get;set;}
Public String tell{get;set;}
Public String Address{get;set;}
Public virtual ICollection<Agent> Agents {get;set;}
}
Public Class Agent
{
Public int AgentId{get;set;}
public string FName{get;set;}
public string LName{get;set;}
public string Mobile{get;set;}
public int? CompanyId{get;set;}
[ForeignKey("CompanyId")]
public virtual Company company{get;set;}
}
然后我创建了View Models,但我不确定我是否正确定义它们以满足我的目标。
public Class CompanyViewModel
{
Public int ComapnyId {get;set;}
Public String CompanyName{get;set;}
Public String tell{get;set;}
Public String Address{get;set;}
Public List<AgentViewModel> AgentsName {get;set;}
}
Public AgentViewModel
{
Public int AgentId{get;set;}
public string FName{get;set;}
public string LName{get;set;}
public string Mobile{get;set;}
public int? CompanyId{get;set;}
[ForeignKey("CompanyId")]
public string CompanyName{get;set;}
}
确实,我希望当用户想要创建代理时,在下拉列表中显示所有公司。我有很多疑问,但第一个是
的两个属性 Public List<AgentViewModel> AgentsName {get;set;} and
public string CompanyName{get;set;}
在viewmodels中为我的目标正确定义了吗?
答案 0 :(得分:0)
不,不幸的是你没有正确地做到这一点。所以你成功完成的是创建两个基本上与你的模型类重复的新类,只是更改了名称以包含单词viewmodel
在这种情况下,您应该做的只是将视图传递给新的代理模型,并在viewBag中设置不同的公司列表(强制转换为selectListItems),以用作选择下拉列表以设置CompanyId的值你的代理模特。
根据您所描述的确切需要,创建视图模型没有任何理由。