根据一些逻辑切换@model
本文关键字:@model | 更新日期: 2023-09-27 18:04:57
是否可以基于某种逻辑切换@model ?
我试着:
switch(somelogic){
case "a" :
@model Viewmodel
case "b" :
@model InputModel
....
}
但它不喜欢。
任何想法?
当然不是。这相当于在运行时更改变量类型(或泛型类型参数)。我会(其中之一):
- 编写两个模型可以实现的公共接口
- 为不同的选项写一个包装器模型类型的属性
- 使用
dynamic
- 使用
object
和反射
如果您支持两个模型的相同属性(当您以声明式方式表达表达式时,这将是有意义的),为什么两者都不支持呢:
。有一个模型类型从另一个继承,例如InputModel : ViewModel
,或者;b.提取共享属性作为接口的成员,例如IViewModel
,并简单地声明@model IViewModel