2011-12-04 17 views
0

Product Entity對象被傳遞給視圖。我想添加一些屬性,只有主要關注像我應該在哪裏添加主要用於View,Entity對象或Wrapper類中的屬性?

public string MiddleImage 
{ 
    get 
    { 
     return "M" + this.ImageUrl; 
    } 
} 

現在查看我可以在視圖中使用此屬性

<img src="<%=Model.MiddleImage%>" /> 

我的問題是,我應該添加該屬性,在產品實體對象本身還是最好創建另一個繼承自Product的類?

public class ProductWrapper : Product 
{ 
    public string MiddleImage 
    { 
     get 
     { 
      return "M" + this.ImageUrl;    
     } 
    } 
} 

回答

3

我會創造一個ProductViewModel類,認爲只有你的看法關心這當然可以包括任何新成立的UI特性的屬性,如圖像的URL。

然後保存自己的一些腿部工作,並在控制器中使用AutoMapper將這些屬性從實體映射到視圖模型。

在地圖之後分配視圖模型的自定義屬性。

您的Product實體映射到您的持久性存儲,您的ProductViewModel映射到您的用戶界面 - 完全是MVC試圖實現的關注點分離。

+0

因此,你所說的是,如果我在'Product'類中有10個屬性,並且我想添加另外5個屬性,所以最好創建'ProductViewModel'類,它將包含來自'Product'的**相同的10個屬性**和新的5個屬性?這是否實用? – theateist

+0

我當然不會因爲UI問題而污染我的域模型。如果您的視圖需要產品中的每個屬性,則可以將該產品視爲屬性。 –

相關問題