2011-08-07 33 views
1

是否有可能基於某種邏輯來切換@model?基於某種邏輯的switch @model

我想:

switch(somelogic){ 
    case "a" : 
     @model Viewmodel 
    case "b" : 
     @model InputModel 
    .... 
} 

,但它不喜歡。

有什麼想法?

回答

2

不AFAIK。這相當於在運行時更改變量類型(或泛型類型參數)。我會(之一):

  • 寫,這兩個模型可以實現
  • 寫與性能的包裝模型類型的不同選項的通用接口
  • 使用dynamic
  • 使用object和反思

(按優先順序,IMO)

1

如果你是支持兩種模型的相同屬性(當您在聲明式時尚中表達表達式時,這會有意義),爲什麼不能:

a。有一個模型類型從另一個繼承,例如InputModel : ViewModel,或; b。將共享屬性提取爲接口的成員,例如IViewModel,並且只是聲明@model IViewModel