C# @Html.TextBoxFor(m=>;m.Id)重新调整Id的错误值
在my home controller中,我有一个编辑表单的操作方法,设置如下: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
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();在返回视图之前。它可能是挂在旧的价值观上。看到这一点,这可能就是正在发生的事情