代码之家  ›  专栏  ›  技术社区  ›  Jason

MVC控制器未绑定Post上的Id参数

  •  0
  • Jason  · 技术社区  · 15 年前

    我有一个模型有几个属性。提交表单时,我传递这些属性的值(由jQuery生成) $.serialize() 方法)并自动绑定。这工作没有问题。但是,现在我想添加一个 Id '&Id=' + myId 到正在发布的URL的末尾。结果是一个很好的查询字符串(我已经检查了Firebug中发送的内容,并且发布了一个有效的ID)

    身份证件 :

    public Int32 Id { get; set; }
    

    有人会认为Id会在控制器中自动绑定,但即使其他所有数据都是,Id也不是。这真令人沮丧。我可能做错了什么?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Jason    15 年前

    我找到了这个问题的答案,考虑到我在问题中发布的细节,没有人能够回答这个问题。我把答案贴出来是因为我觉得它可能会帮助别人。

    在我的模型中,我的Id属性有一些装饰,我遗漏了,因为我认为它们不重要,但事实证明它们是重要的。我的整个财产是这样的:

    [DataMember(Name = "id")]        
    [Column(Name = "id", AutoSync = AutoSync.OnInsert, IsDbGenerated = true, 
      IsPrimaryKey = true)]
    public Int32 Id { get; set; }
    

    AutoSync 装饰的一部分意味着它与数据库同步,实际上不能以声明方式设置。所以如果你想做我做过的事,确保你没有 自动同步

    希望这能帮助别人:)