2010-08-12 44 views
0

我有一个模型,有几个属性。当我提交表单时,我传递了这些属性的值(由jQuery $.serialize()方法生成),并自动绑定它们。这工作没有问题。但是,现在我想将一个Id添加到字符串中,并且我必须手动执行它,因为它不是表单字段。我通过在发布的URL末尾附加'&Id=' + myId来完成此操作。其结果是一个很好的查询字符串(我检查什么是萤火虫越来越发送和有效身份证是越来越贴)MVC控制器不绑定Id参数在岗

我的模型有一个属性Id

public Int32 Id { get; set; } 

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

回答

2

我找到了这个问题的答案,并且给出了我在问题中发布的详细信息,但没有人能够回答它。我发布了答案,因为我觉得它可以帮助某人。

在我的模型中,我的Id属性有一些我忽略的装饰,因为我不认为它们很重要,但事实证明它们是。下面是我的全部财产的样子:

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

显然,装修AutoSync部分意味着它与数据库同步,并实际上不能以声明方式设置。所以如果你想要做我做的事情,请确保你没有声明AutoSync

希望这可以帮助别人:)