2010-05-24 18 views

cevap

32

O System.Web.Mvc.ViewPage<TModel> türemiş bir aspx sayfası. Bu görünümün, TModel türüne güçlü bir şekilde yazıldığı söylenir. Sizin aspx sayfa System.Web.Mvc.ViewPage türetilen eğer

<%= Model.Name %> 
<%= Model.Age %> 

sen nereye gerekir olarak: Bu bir sonucu olarak tip TModel sahiptir ve doğrudan böyle modelin özelliklerine erişmesine izin verir bu görünümü içindeki Model mülk var

<%= (string)ViewData["Name"] %> 
<%= (int)ViewData["Age"] %> 

ya da daha kötüsü:

<%= ((SomeModelType)ViewData["model"]).Name %> 
görünümü artık TModel türü hakkında bilir ViewData değerleri çekmek

ve bu kodda derleme zamanı güvenliği yoktur.

Bildirim da kesinlikle yazılı partials (ASCX) için ViewUserControl<TModel> muadili var ki.

3

Onun model olarak geçirilen nesne tipini belirten bir görünümüdür.

11

kesin belirlenmiş incelemeler modeli nesneleri belirli türde işleme yerine genel ViewData yapısı kullanılarak kullanılır. Veri türünü belirterek, model sınıfı için IntelliSense'e erişim elde edersiniz.

+0

neyi Görünüm birden Modeli Sınıfların alanları veya özelliklerini kullanırsa? –

+1

@AbidAli Üyeleri çok modelli sınıfların örnekleri olan ayrı bir "görünüm modeli" oluşturun. Eğer 'ModelA',' ModelB' ve 'ModelC' varsa Örneğin, o zaman bir görünüm modeli olurdu:' public class MyViewModel {kamu Modela Modela {get; set; public ModelB ModelB {get; set; public ModelC ModelC {get; set; }} '. –

İlgili konular