【问题标题】:http post object with object list not bound未绑定对象列表的 http post 对象
【发布时间】:2014-07-30 14:54:19
【问题描述】:

我已经阅读了模型绑定 (http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx) 并且我知道它应该如何工作,但不幸的是,如果我执行以下操作,mvc 绑定将无法正常工作

我正在发布以下数据,但我的 mvc 控制器未正确绑定值。

competenceRatings[0].comment    
competenceRatings[0].ratingSchemeId 
competenceRatings[0].ratingRevisedSchemeId  cf1235bb-e30f-4d3d-8002-259b3d6205c9_f203335d-3e49-4c2b-b943-2a0e3e053e92
competenceRatings[1].comment    
competenceRatings[1].ratingSchemeId     
competenceRatings[1].ratingRevisedSchemeId  7a7aebc0-fbb6-4677-93de-5b8a53c43615_dd35f361-6c77-4ffa-b49f-57a8958ca362
exerciseScenarioId  fba8aaa0-d141-484f-bcbe-564004b479b9
observerId  c7679e20-45de-4742-912a-0a234daf7244
participantId   c7679e20-45de-4742-912a-0a234daf7243
ratingTypeId    a457b1c5-669a-4496-9491-3906bbb83725
sheetId c7679e20-45de-4742-912a-0a234daf7232

我用过的课程:

public class SheetRatingViewModel
{
    public Guid sheetId { get; set; }     
    public Guid ratingTypeId { get; set; }
    public Guid participantId { get; set; }
    public Guid observerId { get; set; }
    public Guid exerciseScenarioId { get; set; }
    List<RatingViewModel> competenceRatings { get; set; }
}

public class RatingViewModel
{
    public String ratingSchemeId { get; set; }
    public String ratingRevisedSchemeId { get; set; }
    public String comment { get; set; }
}

我的控制器

 public async Task<ActionResult> Create(SheetRatingViewModel sheetRating)
 { .... }

是否有人知道为什么已发布的输入字段(命名为列表)未绑定到属性“competenceRatings”?单个属性已正确绑定。

谢谢。

【问题讨论】:

  • 你能展示你的完整视图吗?

标签: asp.net-mvc binding http-post


【解决方案1】:
List<RatingViewModel> competenceRatings { get; set; }

这个必须像您在 SheetRatingViewModel 中的其他属性一样公开。 modelbinder 只能绑定到公共属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-15
    • 2016-02-17
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 2021-12-21
    相关资源
    最近更新 更多