1

当我编辑一个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汤都是可以理解的:)

4

1 回答 1

1

尝试将 ID 属性更改为其他内容,例如 Tag。我怀疑有一个错误,model.ID 从模型中提取主键,而不是列 ID。

于 2012-12-15T15:47:51.510 回答