2011-08-03 9 views
2

私は最初のMVCアプリケーションを作成していますが、そのうちの1つはデータベースのテーブルから一連の質問をリストする必要があります。私は、セットアップしているモデル:MVC 3 Webapp - Model Binder

public class Audit 
{ 
    public DateTime InspectionDate { get; set; } 
    public string Engineer { get; set; } 
    public List<AuditGroup> AuditGroups { get; set; } 
} 

public class AuditGroup 
{ 
    public string GroupName { get; set; } 
    public List<AuditQuestion> AuditQuestions { get; set; } 
} 

public class AuditQuestion 
{ 
    public string Group { get; set; } 
    public string Question { get; set; } 
    public string Answer { get; set; } 
    public string Comments { get; set; } 
} 

モデルがリストに含まれている、私が作成というページを作成し、グループ内のグループや質問をモデルに取り込まれ、これらはページの罰金に表示されます。私が質問に答える(テキストボックスに記入)し、送信ボタンを押すと、それは、コントローラを呼び出します。

[HttpPost] 
    public ActionResult Create(Audit newAudit) 
    { 
     try 
     { 
      // TODO: Add insert logic here 

      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

newAuditは、エンジニアや検査日付のデータを持っていますが、バインダーは、ページ上のリストを拾っていません。だからここに私はリストを通過すると、ページ上でそれらを置くことが、上のリストがヌルで提出しています

@{ 
    ViewBag.Title = "Audit"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
@model test.Models.Audit 
<h2> 
    Audit</h2> 
@using (Html.BeginForm()) 
{ 
<fieldset> 

    @foreach (var AuditGroups in Model.AuditGroups) 
    { 
    @Html.EditorFor(x=> AuditGroups.GroupName) 

     } 
</fieldset> 
<p> 
    <input type="submit" value="Create" /> 
</p> 

}

:これは、私はそれを動作するようにしようとしている伐採バージョンです。誰かが私が間違っていることを知っていますか?

私がやっていることは、質問リストをページに送信し、ユーザーが記入して回答を提出することですが、いずれのリストに対しても回答が得られません。

答えて

0

this questionへの私の答えを見てください。この問題に対処したブログ記事がいくつか掲載されています。さらに、彼が問題を解決するのに役立つポストへのリンクを提供した答えに対するYarxのコメントを読んでください。

+0

こんにちは、お返事ありがとうございます。私はhttp://ivanz.com/2011/06/16/editing-variable-length-reorderable-collections-in-asp-net-mvc-jpegからサンプルコードをダウンロードしました。パート1 /あなたが推奨しているように、私は必要なもののように見えます。あなたは投稿しています... – MartGriff

関連する問題