我有以下代码作为更新用户的javascript:
updateUser: function (userResponse) {
var userNameEdit = this.$el.find("#txtNameEdit").val();
if (userNameEdit != "") {
var myUser = new user();
myUser = this.collection.models[0];
//myUser.set({ username: 'testaaaa' });
myUser.save({ username: userNameEdit, email: 'aaaa@aaa' }, {
url: '/users/Edit/' + myUser.get('id'),
wait: true,
success: function () {
var templateTemp = $("#personTemplate").html();
this.$el.html(_.template(templateTemp, { name: myUser.get('name') }));
},
error: function () { alert('update error'); }
});
}
},
当我在服务器端检查用户对象时,它具有默认值!
[HttpPut]
//[ValidateAntiForgeryToken]
public ActionResult Edit(user user)
{
if (ModelState.IsValid)
{
_context.Entry(user).State = EntityState.Modified;
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
最佳答案
将 url: '/users/Edit/' + myUser.get('id'),
替换为 url: '/users/Edit/',
关于c# - Backbone 不会将模型值发送到服务器 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37836873/