2014-02-07 42 views
1

我很新的MVC場景,也沒有處理過這種情況之前,現在。我環顧了網絡,指出了我的方向,但似乎沒有把我完全理解的背景放到一個上下文中。一個模型,多個ViewModel(?)變體

我不確定這是否適用於這種情況,但我目前沒有使用任何類型的AutoMapper。該項目使用MVC5/EF6。

型號

public class Unknown 
{ 
    public int UnknownID { get; set; } 
    public DateTime ReceivedDate { get; set; } 
    public int SetuptypeID { get; set; } 
    public string ClientName { get; set; } 
    public string RequestedBy { get; set; } 
    public string ResultID { get; set; } 
    public string RoutingNum { get; set; } 
    public string TransAcctNum { get; set; } 
    public string Company { get; set; } 
    public string SettleRoutingNum { get; set; } 
    public string SettleAcctNum { get; set; } 
    public string BillingRoutingNum { get; set; } 
    public string BillingAcctNum { get; set; } 
    public string PointName { get; set; } 
    public string PepApplName { get; set; } 
    public int RequestTypeID { get; set; } 
    public bool IsDeleted { get; set; } 

    public virtual SetupType SetupType { get; set; } 
    public virtual RequestType RequestType { get; set; } 
} 

SETUPTYPE '未知' 的規定,所有領域

SETUPTYPE '內部' 要求:

  • UnknownID
  • ReceivedDate
  • SetuptypeID
  • CLIENTNAME
  • RequestedBy
  • ResultID
  • RoutingNum
  • TransAcctNum
  • RequestTypeID
  • 請將isDeleted

SETUPTYPE 'ServiceVendor' 需要:

  • UnknownID
  • ReceivedDate
  • SetuptypeID
  • CLIENTNAME
  • RequestedBy
  • ResultID
  • 公司
  • SettleAcctNum
  • BillingAcctNum
  • RequestTypeID
  • 請將isDeleted

有具有相同的字段 '內部' 另一SETUPTYPE 有10個其它SETUPTYPE變化

字段UnknownID,ReceivedDate,SetupTypeID,CLIENTNAME,RequestTypeID,請將isDeleted和在所有SetupTypes。

我覺得每個人都需要設置一個獨立的ViewModel,列出了DRY主體所需的所有字段。什麼是代表這些SetupTypes的好方法?

+0

你有什麼問題? – Shoe

+1

我需要能夠在應用程序中的多個位置引用這些單獨的安裝類型。我希望設置類型的具體要求被安置在一個位置。因此,例如,一種設置類型可能需要以不同的方式顯示字段名稱。 – gfedz

+0

我剛剛想過這個,一堆ViewModel真的是要走的路? – gfedz

回答

0

我認爲multple ViewModels是去這裏的路。如果您對違反DRY感到不滿,您可以引入一個繼承層次結構,並將公共邏輯存儲在基類和setuptype特定的邏輯中(如您的示例中某個字段對於安裝類型='internal'顯示不同的值)類。

相關問題