为什么视图会得到两个不同的Model.Id?

时间:2017-02-07 13:55:16

标签: asp.net-mvc razor

我试图了解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?

0 个答案:

没有答案