我想更深入地瞭解ViewModels,並且我已經閱讀了許多關於MVC中的ViewModel的文章和博客。在一些文章中說,Model不應該從ViewModel引用,但在其他一些文章中,建議使用model作爲viewmodel的成員。模型作爲ViewModel的成員
讓我們舉一個例子,我必須創建一個基於模型的ViewModel。我可能做到這一點有兩種方式:
public class Car
{
public int Year {get;set;}
public string Make {get;set;}
//more properties......
}
public class CarViewModel
{
public CarViewModel(Car model)
{
Model = model;
}
public Car Model { get; set; }
//additional view model specific properties
}
或者2.
public class Car
{
public int Year {get;set;}
public string Make {get;set;}
//more Car properties......
}
public class CarViewModel
{
public int Year {get;set;}
public string Make {get;set;}
//more Car properties......
//additional view model specific properties
}
我只是想知道哪一個是創建一個視圖模型的正確途徑。或者有沒有其他的方式來完成這一切?
謝謝@Mark!我總結爲:如果視圖需要比模型中包含的信息更多的信息,創建一個包裝視圖模型,並且如果視圖需要模型的更少數量的屬性,則創建一個全新的ViewModel類? –
還有一件事是,當你有由Entity Framework,LinqToSql等創建的模型時,你應該創建一個視圖模型。如果沒有使用視圖模型,並且當你直接使用這些類,你將會遇到序列化異常和其他問題,因爲包含延遲加載/循環引用,所以在這些情況下你也應該使用視圖模型。 – VJAI
太棒了!這是有道理的。非常感謝你。 –