アイテムを編集しているときに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
}
私のコントローラーの編集アクションでは、次のようになります。
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のスープが理解できることを願っています:)