私は、ASP.NETブログやStackOverflowに関する質問を何百も読んできましたが、この(明らかに)単純な問題の解決策を見つけることはできません。リスト<string>バインディング
質問クラス
public class Question
{
public int QuestionId { get; set; }
public string QuestionBody { get; set; }
public List<string> Answers { get; set; }
}
私はQuestionオブジェクトを作成するための簡単なフォームを持っている:ここでは単純化されたバージョンです。私は自動EditorForがコレクションのために存在しないことを知っているので、私はして試してみました:私のフォームで
:私のコントローラで
<div class="editor-field">
@Html.TextBox("Answers")
@Html.TextBox("Answers")
@Html.TextBox("Answers")
</div>
:
public ActionResult Create(Question question, List<string> Answers)
...
答えが正しく渡されますが、彼らは私のモデルに束縛されていません!
質問#:質問リストにこの文字列を自動的に結びつける方法がありますか?
は、その後、私はやって、私のモデルで一覧があることをこのリストを「強制」してみました:
question.Answers = Answers;
db.Questions.Add(question);
db.SaveChanges();
をしかし、私のコレクションは常に空として渡されています。これはASP.NET MVCモデルのバインディングと検証によるものだと思います。
ので、質問#2:「修正」する方法は存在しないことがdb.SaveChangesでデータベースに保存される直前に、私の質問オブジェクト()?
ありがとうございます。
ありがとう。私は第二の解決策を使用するつもりですが、私が最初の解決策を理解できないためです。文字列のコレクション(List)は基本型でなければならず、プロパティを持つ複雑なオブジェクトではありません。単純なテキストボックスをレンダリングし、リストをコントローラに渡すためにEditorTemplateを作成する必要がありますか? (以前は言ったように、私はすでにコントローラに渡すことができますが、Listはモデルにバインドされていないことに注意してください)。 – daliz