我试图了解MVC的基础知识。我实现了一个简单的CRUD工作正常,但我不明白"更新"部分工作。
我的模型类非常简单:
public class User
{
public int Id { get; set;
public string Name { get; set; }
public string Mail { get; set; }
}
以下是我用于更新的两个控制器操作:
//id is passed through the url (action/controller/id)
public ActionResult UpdateUser(int id)
{
Models.User userToUpdate = Data_Services.DataServices.GetUserById(id);
return View(userToUpdate);
}
[HttpPost]
public ActionResult Updateuser(Models.User userToUpdate)
{
Data_Services.DataServices.UpdateUser(userToUpdate);
return RedirectToAction("Index");
}
DataServices
类执行一些基本的数据库工作。现在就是这样:我在DataServices.GetUserById
中犯了一个错误,它返回一个用户名正确,电子邮件为但Id = 0 。
尽管如此,在回发表单时,传递给控制器的模型具有正确的ID! 它包含在隐藏字段中。但它来自哪里?
以下是视图的一部分:
@model CRUD_MVC.Models.User
*...*
<p>id of the user in Model : @Model.Id</ p> *shows 0*
@Html.HiddenFor(model => model.Id) *contains the correct Id!*
所以我的问题是:为什么两个Model.Id中有不同的值? &#34;真实&#34; Id来自,因为传递给视图的唯一内容是0?