asp.net mvc默认模型绑定器,用于具有继承的模型

时间:2010-12-31 05:31:18

标签: c# asp.net-mvc defaultmodelbinder

我有一个我绑定的表单具有以下结构:

public class Status
{
   public List<ABCAttachment> ABCAttachments_Files { get; set; }
}

public class Attachment
{
  public string Id { get; set; }
}

public class ABCAttachment : Attachment
{
   string Name { get; set; }
}

我的行动如下:

public ActionResult SaveAttachment(Status status)
{
  ....
}

数据以

的形式出现
ABCAttachments_Files[0].Id="0", ABCAttachments_Files[0].Name="test" 

当我在SaveAttachments操作中访问状态时,Id就在那里,但名称不是。我看到它被正确发布了,但为什么它没有正确绑定?

1 个答案:

答案 0 :(得分:1)

看起来Name属性需要公开,或者不受限制:

public class ABCAttachment : Attachment
{
   string Name { get; set; }
}

应该是

public class ABCAttachment : Attachment
{
   public string Name { get; set; }
}