C# @Html.TextBoxFor(m=>;m.Id)重新调整Id的错误值

C# @Html.TextBoxFor(m=>;m.Id)重新调整Id的错误值,c#,asp.net-mvc,C#,Asp.net Mvc,在my home controller中,我有一个编辑表单的操作方法,设置如下: public ActionResult Edit(int id) { Person p = DbPerson.GetPerson(id); return View(p); } 观点: @model Person <h4 class="leftBG">Edit Form</h4> id is : @Model.Id<br /> Name is : @Mode

在my home controller中,我有一个编辑表单的操作方法,设置如下:

public ActionResult Edit(int id)
{
    Person p = DbPerson.GetPerson(id);

    return View(p);
}
观点:

@model Person

<h4 class="leftBG">Edit Form</h4>

id is : @Model.Id<br />
Name is : @Model.Name<br /><br />

@Html.LabelFor(m => m.Id, new { })
@Html.TextBoxFor(m => m.Id, new { })

@Html.LabelFor(m=>m.Name, new { })
@Html.TextBoxFor(m => m.Name, new { })
@模特儿
编辑表格
id为:@Model.id
名称为:@Model.Name

@LabelFor(m=>m.Id,新{}) @TextBoxFor(m=>m.Id,新{}) @LabelFor(m=>m.Name,新{}) @TextBoxFor(m=>m.Name,新{})
当我导航到:
home/edit/1
我找到了id=1的人,一切都正常

但是如果我进入
home/edit/199
(数据库中没有id=199的人) DbPerson.GetPereson返回一个id为0的人

然而在我看来,id的文本框显示:
199
,我不知道为什么

这是预期的行为吗

为什么Model.Id是
0
,而文本框却显示值
199

尝试使用ModelState.Clear();在返回视图之前。它可能是挂在旧的价值观上。

看到这一点,这可能就是正在发生的事情