我有一个具有多个属性的模型。当我提交表单时,我会传递这些属性的值(由jQuery $.serialize()
方法生成),并且它们会自动绑定。这没有问题。但是,现在我想在字符串中添加Id
,我必须手动完成,因为它不是表单字段。我已经通过将'&Id=' + myId
附加到发布的URL的末尾来完成此操作。结果是一个很好的查询字符串(我已经检查了Firebug中发送了什么,并且有效的ID被发布)
我的模型有一个属性Id
:
public Int32 Id { get; set; }
有人会认为Id会在控制器中自动绑定,但即使所有其他数据都是,但Id不是。这真令人沮丧。我可能做错了什么?
答案 0 :(得分:2)
我找到了这个问题的答案,并且考虑到我在问题中发布的细节,没有人能够回答它。我发布了答案,因为我觉得它可能对某人有所帮助。
在我的模型中,我的Id属性有一些我遗漏的装饰因为我认为它们不重要,但事实证明它们是。这是我的整个财产的样子:
[DataMember(Name = "id")]
[Column(Name = "id", AutoSync = AutoSync.OnInsert, IsDbGenerated = true,
IsPrimaryKey = true)]
public Int32 Id { get; set; }
显然,装饰的AutoSync
部分意味着它与数据库同步,实际上无法以声明方式设置。因此,如果您正在尝试做我所做的事情,请确保您没有声明AutoSync
!
希望这有助于某人:)