MVC 3 IList <T>Свойства модели NULL на POST - PullRequest
2 голосов
/ 15 декабря 2011

Я позволю коду говорить здесь, у меня что-то вроде этого:

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; }
}

У меня есть модальный режим, который позволяет пользователям добавлять список симптомов на мой взгляд. Каждый добавляемый симптом производит ВХОД, который выглядит следующим образом (где 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 в качестве [Category] для каждого.

Я использую Entity Framework 4.1 Code First с Fluent API, который разрабатывается в MVC 3 с использованием синтаксиса Razor.

1 Ответ

2 голосов
/ 15 декабря 2011

Попробуйте:

<input type="text"
    name="Symptom[N].Category.Name"
    value="@Model.Symptom[N].Category.Name">

Я думаю, что происходит то, что он пытается связать string с Category, что недопустимо.Если вы хотите сопоставить текст со свойством Name класса Category, вам нужно будет указать его на один уровень глубже.

...