MVC控制器没有绑定Id Param On Post

时间:2010-08-12 23:24:28

标签: asp.net-mvc binding jquery

我有一个具有多个属性的模型。当我提交表单时,我会传递这些属性的值(由jQuery $.serialize()方法生成),并且它们会自动绑定。这没有问题。但是,现在我想在字符串中添加Id,我必须手动完成,因为它不是表单字段。我已经通过将'&Id=' + myId附加到发布的URL的末尾来完成此操作。结果是一个很好的查询字符串(我已经检查了Firebug中发送了什么,并且有效的ID被发布)

我的模型有一个属性Id

public Int32 Id { get; set; }

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

1 个答案:

答案 0 :(得分:2)

我找到了这个问题的答案,并且考虑到我在问题中发布的细节,没有人能够回答它。我发布了答案,因为我觉得它可能对某人有所帮助。

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

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

显然,装饰的AutoSync部分意味着它与数据库同步,实际上无法以声明方式设置。因此,如果您正在尝试做我所做的事情,请确保您没有声明AutoSync

希望这有助于某人:)