C# 如何解决ID上的此错误?
我正在我的项目中使用WebAPI和MVC。我在将id(PersonID)从一个表(Person)保存到另一个表(密码)时出错。我的问题是,当我试图将PersonID保存到密码表时,它会保存零,而不是将自动生成的PersonID保存到persons表中 控制器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) {
// 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表上自动生成的数字。我无法实现这一点,因为我试图将输入从文本更改为隐藏,并删除只读,但仍然给我零。您是否按照建议更改了名称?