当我编辑Animal
项时,我发现“ID”的字段填充了字段“idAnimal”的值。通过作为参数传递的id从数据库(使用EF)检索动物模型。名为“id”的参数是数据库中名为“idAnimal”的键。
在控制器中调试,模型的值为OK(ID = null,idAnimal = some int)...并且在Razor视图中进行调试,我可以看到使用@Model.ID
也为空...但是一旦渲染了视图,我在文本框中看到了一个值。
我的模型如下:
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
}
在我的控制器的编辑操作中,我有:
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的所有汤都是可以理解的:)
答案 0 :(得分:1)
尝试将ID属性更改为其他内容,例如Tag。我怀疑有一个错误,其中model.ID从模型中提取主键,而不是列ID。