在我的ASP.NET MVC項目中,我有一個多態集合,我希望呈現 - 例如,IEnumerable<ISomething>
,其中各個項目可能是ISomething
的不同實現的混合。ASP.NET MVC有什麼等同於WPF的DataTemplate特性嗎?
我想那個列表呈現,其中每個具體類型根據自己的模板呈現(也許是一個強類型的ViewUserControl)。
在WPF中,我將能夠指定DataTemplates,它會自動將具體類型綁定到特定模板。我可以在ASP.NET MVC中做類似的事嗎?很顯然,我可以迭代整個列表並嘗試使用關鍵字is
進行強制轉換,然後使用大量的if
語句來呈現所需的控件,但我希望獲得更優雅的東西(如WPF)。
因爲這將意味着特定於UI的代碼侵入了ISomething接口。然而,你的建議有一定的優勢,我可以定義一個新的接口來封裝對象,併爲每個對象定義一個視圖模型,以及相關的視圖標識符(就像你建議的方法一樣)。這可能有用,但與WPF的做法相比,仍然有點笨拙。 – 2009-06-24 12:29:49