当我编辑一个Animal
项目时,我看到“ID”字段填充了“idAnimal”字段的值。通过作为参数传递的 id 从数据库中检索动物模型(使用 EF)。名为“id”的参数是数据库中名为“idAnimal”的键。
在控制器中调试,模型的值 OK(ID = null,idAnimal = some int)......并且在 Razor 视图中调试,我可以看到 using@Model.ID
也是 null ......但是一旦视图被渲染我看到文本框中的值。
我的模型如下:
public class Animal
{
public int idAnimal {get; set;} //this is the id in database
public int ID {get; set;} //this is the id given at birth to the animal, a business concept
//The rest of the properties
}
在我的控制器的 EDIT 操作中,我有:
public virtual ActionResult Edit(int id)
{
Animal myA = db.Animals.Find(id);
return PartialView(myA)
}
在我看来:
@model MyApp.Model.Animal
....
@Html.LabelForX(model => model.ID)
<div class="input">
@Html.TextBoxFor(model => model.ID, new { @class = "medium", size = 30 })
@Html.ValidationMessageFor(model => model.ID)
</div>
....
奇怪的是,唯一可能发生的事情是名为“id”的参数(它保存字段“idAnimal”中的值)可能会干扰某些方式。
希望这所有的id汤都是可以理解的:)