我正在研究模型層次結構並提出幾個問題。ASP.NET MVC查看模型庫?
1)我有每種視圖類型(添加,編輯和視圖)的基本模型。我把這些東西放在特定於每種視圖類型的東西中。
2)然後我有一個模型基地,上面的基地繼承。這允許我包含與ALL視圖有關的事物。
3)在我的ModelBase中,我有一些其他視圖模型,如FeedbackViewModel,ShoppingCartViewModel等,我可以在任何視圖上使用它們。
4)我有我的MasterPage繼承ModelBase。
例
Public MustInherit Class ModelBase
Public Property ErrorMessage As String
Public Property InformationMessage As String
Public Property WarningMessage As String
Public Property FeedbackModel As New FeedbackViewModel
End Class
Public MustInherit Class ViewModelBase
Inherits ModelBase
'View Model Specific Stuff
End Class
'Allows contact us form to be submitted.
Public Class ContactUsViewModel
Inherits ViewModelBase
Public Property Name As String
Public Property EmailAddress As String
Public Property Phone As String
Public Property Comments As String
End Class
這是我的模型的基本結構,但有幾個問題:
1)我該怎麼做,不需要模型的視圖,但我需要傳遞FeedabckViewModel,SHoppingCartViewModel等?我正在考慮GenricViewModel?
2)您是否發現此設計中存在任何缺陷?
謝謝!
爲什麼使用'ErrorMessage','InformationMessage'等?我這樣做是爲了隱藏我想在視圖(頁面)上顯示的消息,該消息未綁定到某個屬性,比如'Invalid Login.'。在控制器中,我使用ModelState.AddModelError(「Message」,「Invalid Login」),然後爲視圖中的Message屬性設置ValidationMessage。 – Sam 2011-04-11 00:12:46
因此,有一個枚舉'ModelType',然後在每個模型中有一個屬性'ModelType'?你是說嵌套模型好嗎?我喜歡他們,那麼你有一個強類型的模型層次結構。 – Sam 2011-04-11 00:14:16
如果您想要使用基於約定的模板,例如自定義顯示/編輯模板--Html.DisplayFor(model => model.NestedViewModelType),則嵌套ViewModel非常好。 – RPM1984 2011-04-11 00:16:46