【问题标题】:Casting to a derived class doesnt work on view page(aspx)转换为派生类在视图页面(aspx)上不起作用
【发布时间】:2011-07-26 19:56:05
【问题描述】:

嗨,我遇到了一个简单的问题

假设我有一堂课

public Abstract Animal

我有 2 个派生类

public Cat : Animal
{ 
    public int NumberOfLegs {get;set;}
}

所以我把它传递给了我的视图

System.Web.Mvc.ViewPage((IEnumerable<Animal>)

在aspx页面中 我不能这样做(它甚至不会编译)。它不会识别 NumberOflegs 成员

foreach (item in Model)

    (Cat)item.NumberOfLegs

有什么想法吗?

提前致谢

【问题讨论】:

    标签: asp.net-mvc inheritance casting


    【解决方案1】:

    在访问成员之前,您需要添加几个括号来评估演员表:

    ((Cat)item).NumberOfLegs
    

    【讨论】:

      【解决方案2】:

      如果您只想处理“猫”,那么您可以使用 Linq 过滤集合

      foreach (item in Model.OfType<Cat>())
        item.NumberOfLegs
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-16
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 2012-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多