2017-07-08 109 views
0

我創建了兩個型號名稱作爲公司代理問題與應該有一個對他們之間有很多的關係,因爲每家公司可能有很多代理商,但每個代理相關到一家公司。這些型號如下:創建視圖模型,模型與一個在asp.net mvc的一對多關係

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;} 
    } 

然後我創建視圖模型如下,但我不確定我是否正確定義它們以滿足我的目標。

 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;} 
    } 

事實上,我想,當用戶想要創建一個代理顯示他在下拉列表中的所有公司。我有這麼多的問題有關,但第一個是對的ViewModels我的目標正確定義的

 Public List<AgentViewModel> AgentsName {get;set;} and 
     public string CompanyName{get;set;} 

兩個屬性?

回答

-1

定義CompanyViewModel,AgentViewModel和第三CompanyAgentViewmodel

Public class CompanyAgentViewModel 
{ 
    public CompanyViewModel Company {get;set;} 
    public List<AgentViewModel> Agents {get; set;} 
} 

腳手架與CompanyAgentViewModel你的觀點,你應該去好

0

沒有呢,可惜你不這樣做正確。所以你已經成功地創建了兩個新類,它們基本上是你的模型類的重複,並且改變了名稱以包含詞viewmodel

在這種情況下,你應該做的只是將視圖傳遞給一個新的Agent模型並在viewBag中設置一個不同的公司列表(轉換爲selectListItems),以用作選擇下拉列表以在代理模型上設置CompanyId的值。

有了您的確切需求爲您所描述的,沒有創建視圖模型的理由。

相關問題