C# 如何解决ID上的此错误?

C# 如何解决ID上的此错误?,c#,asp.net-web-api,C#,Asp.net Web Api,我正在我的项目中使用WebAPI和MVC。我在将id(PersonID)从一个表(Person)保存到另一个表(密码)时出错。我的问题是,当我试图将PersonID保存到密码表时,它会保存零,而不是将自动生成的PersonID保存到persons表中 控制器 // POST: api/Person1 [ResponseType(typeof(Person1))] public IHttpActionResult PostPerson1(UserVM vm) {

我正在我的项目中使用WebAPI和MVC。我在将id(PersonID)从一个表(Person)保存到另一个表(密码)时出错。我的问题是,当我试图将PersonID保存到密码表时,它会保存零,而不是将自动生成的PersonID保存到persons表中

控制器

   // POST: api/Person1
    [ResponseType(typeof(Person1))]
    public IHttpActionResult PostPerson1(UserVM vm)
    {
        var pers = new Person1
        {
            PersonID = vm.PersonID,
            Title = vm.Title,
            FirstName = vm.FirstName,
            LastName = vm.LastName,
         };

        var word = new Password();
        using (var context = new VybeEstoreEntities2())
        {
            context.People1.Add(pers);

            word.PersonID = pers.PersonID;

            word.Password1 = vm.Password1;

            context.Passwords.Add(word);
            context.SaveChanges();
        }

        return Ok(vm);
     }
UserVM

public class UserVM
{
    public int PersonID { get; set; }        
    public string FirstName { get; set; }       
    public string LastName { get; set; }      
    public string UserName { get; set; }       
    public string Password1 { get; set; }     
}
查看

   <div class="control-group" ng-class="{error: form.PersonID.$invalid}">
        <label class="control-label">PersonID</label>
        <div class="controls">
            <input type="text" class="form-control" ng-model="lis.PersonID" id="PersonID" placeholder="" readonly="readonly">
        </div>
    </div>
     <div class="control-group" ng-class="{error: form.Password.$invalid}">
        <label class="control-label">Password</label>
        <div class="controls">
            <input type="text" class="form-control" ng-model="lis.Password1" id="Password1" placeholder="">
        </div>
    </div>

类型属性
密码

您应该填写
输入
元素的
名称
,因为它被用作通过导线发送其值的唯一键,而不是
ID
。另外,我想知道
readonly
是否也让他们发送,也许你需要做一个
隐藏的
输入
,但这只是你必须自己检查的事情

例如:

<input type="text" name="PersonID" class="form-control" ng-model="lis.PersonID" id="PersonID" placeholder="" readonly="readonly">

                   ^^^^

^^^^

通过调试,您确定
vm.Password1
有值吗?为什么要拆分人员和密码?是的。因为当我调试PersonId时显示0。@Patrickhoffman我的错误是PersonId在密码表上保存零(0),而不是保存persons表上自动生成的数字。我无法实现这一点,因为我试图将输入从文本更改为隐藏,并删除只读,但仍然给我零。您是否按照建议更改了名称?