我会让代码在这里说话,我有这样的事情:
class Problem
{
public string Title { get; set; }
public string Description { get; set; }
public virtual IList<Symptom> Symptoms { get; set; }
}
class Symptom
{
public string Comments { get; set; }
public virtual Category Category { get; set; }
}
class Category
{
public string Name { get; set; }
}
我有一个模式,允许用户在我的视图上添加症状列表。添加的每个症状都会产生一个看起来像这样的INPUT(其中N是索引):
<input type="text" name="Symptom[N].Name" value="@Model.Symptom[N].Name">
<input type="text" name="Symptom[N].Category" value="@Model.Symptom[N].Category">
将数据发布到控制器后,模型包含症状的有效列表(如果我添加3,我的Product.Symptom列表有3个实体)和每个症状的[注释]已持久化,但每个的[Category]属性为NULL。我在这做错了什么?我已经尝试了很多东西,但我仍然以NULL作为每个的[类别]。
我正在使用Entity Framework 4.1 Code First和使用Razor语法在MVC 3中开发的Fluent API。
答案 0 :(得分:2)
试试这个:
<input type="text"
name="Symptom[N].Category.Name"
value="@Model.Symptom[N].Category.Name">
我认为正在发生的是它正试图将string
绑定到无效的Category
。如果要将文本映射到Name
类的Category
属性,则需要将其指定为更深层次。