Я читал сотни сообщений в блогах и вопросах ASP.NET по StackOverflow, но я не могу найти решение этой (по-видимому) простой проблемы. Вот упрощенная версия:Список <string> binding
Вопрос Класс
public class Question
{
public int QuestionId { get; set; }
public string QuestionBody { get; set; }
public List<string> Answers { get; set; }
}
У меня есть простая форма для создания объекта Вопроса. Я знаю, что это не автоматический EditorFor для коллекций, так что я попытался с:
В моей форме:
<div class="editor-field">
@Html.TextBox("Answers")
@Html.TextBox("Answers")
@Html.TextBox("Answers")
</div>
В моем контроллере:
public ActionResult Create(Question question, List<string> Answers)
...
правильно прошло ответы, но они не привязаны к моей модели!
Вопрос №1: Существует ли способ автоматически привязать этот список строк к списку строк, содержащихся в моей модели вопросов?
Тогда я пытался «заставить» этот список будет Перечня в моей модели, делая:
question.Answers = Answers;
db.Questions.Add(question);
db.SaveChanges();
Но моя коллекция всегда передается как пустые. Я думаю, что это связано с привязкой и проверкой модели ASP.NET MVC.
Итак, Вопрос № 2: Существует ли способ «изменить» мой объект вопрос только перед сохранением в базе данных с db.SaveChanges()?
спасибо.
Спасибо. Я собираюсь использовать второе решение, но только потому, что не понимаю первого. Сбор (Список) строк должен быть базовым, это не сложный объект со свойствами. Должен ли я действительно создавать EditorTemplate для рендеринга простого текстового поля и передать список контроллеру? (Обратите внимание, что я уже могу передать его контроллеру, как я уже говорил ранее, но список не привязан к модели!). – daliz