0
我有下面的类隐式转换为声明@model模型:使用具有在显示模板
public class MyClass
{
public int Number {get; set;}
}
和扩展版:
public class ExtendedMyClass
{
public MyClass Data {get; set;}
public ExtendedMyClass(MyClass data)
{
Data = data;
}
public static implicit operator ExtendedMyClass(MyClass data) => return new ExtendedMyClass(data);
}
在显示模板我有@model ExtendedMyClass
我想能够做到以下几点:
foreach(var item in AllData)/* AllData is a list that contains a mix of MyClass and ExtendedMyClass*/
{
@Html.DisplayFor(m => item)
}
,但我得到了以下错误:
The model item passed into the dictionary is of type 'MyClass', but this dictionary requires a model item of type 'ExtendedMyClass'
有没有一种方式,这不滚动定制IModelBinder实施工作?
然后我得到如下:'模板只能与现场访问,访问属性,一维数组的索引,或单参数自定义索引expressions.'无论我用使用' (MyExtendedClass)item' or'new ExtendedMyClass(item)' –
这也不起作用,因为“列表包含MyClass和ExtendedMyClass的混合”,所以演员阵容将失败 –
@Alex不,它不会。 'MyClass'有一个隐式运算符。请参阅http://ideone.com/S6sdGJ。 – CodeCaster