2012-10-26 69 views
3

我有一個視圖模型類Foo是一個通用的想使用通用基類模型asp.net MVC視圖

public abstract class Base<T> 

及其子類型由它制定的類時,他們繼承這樣

public class Child : Base<Foo> 

我想用他們的觀點像

@model Base<T> 

模型,但我聽說這是不possi BLE。我已經看到人們建議將動態替換爲T,但是這並不起作用,除非我用動態替換Foo。有沒有什麼方法可以像這樣設計視圖模型?我想我可以通過viewbag中的Child對象而不是模型,但我寧願不這樣做,如果可能的話。編輯:(這個viewbag的東西現在不會工作,現在我想它,因爲我需要能夠將它投到一個基地使用它作爲一個,這基本上是我現在有的問題)

+0

我誠實不知道如何使用泛型時能夠訪問模型的元素,但我真的想證明是錯誤的。 – Ammar

回答

3

您不能在視圖@model Base<T>中寫入,因爲它不是具體的類型。無法使用泛型類型鍵入視圖。但是你可以寫

@model Base<Foo> 

@model Base<dynamic> 

如果你表現出更多關於在Base<T>性能我可以給你更具體的建議。

+0

該屬性只是列表和一些常規類型,如整數。也許一種方法返回一個列表 bdwain

+0

爲什麼它應該是列表?它將如何在View中使用?這個觀點對於不同的T而言會有所不同嗎? –

+0

不,它不會依賴T.它只是基地不是一個類型 – bdwain

相關問題