Edit上的奇怪TextBoxFor映射问题

时间:2012-12-15 00:32:56

标签: asp.net-mvc-3 entity-framework-4 model

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

1 个答案:

答案 0 :(得分:1)

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