2012-01-07 8 views
0

質問があります。私は私のモデルのすべての価値を保存する必要があります。 クラスMVC 3のモデルクラスプロパティのヌル値

public class AssessmentAreaContent 
{ 
    //SysAssessmentSubAreaCategory is enity model class 
    public List<SysAssessmentSubAreaCategory> ListSysAssessmentSubAreaCategory; 
} 

コントローラ

public ActionResult AssessmentArea(int id) 
      { 
       var model = new AssessmentAreaContent(); 
       model.ListSysAssessmentSubAreaCategory = db.SysAssessmentSubAreaCategory.Where(c => c.AssessmentAreaId == id).ToList(); 
       return View(model); 
      } 

コントローラーHTTP POSTをメソッド

[HttpPost] 
     public ActionResult AssessmentArea(Web.Models.AssessmentAreaContent assessmentAreaContent) 
     { 

      //assessmentAreaContent.ListSysAssessmentSubAreaCategory is null here ?? ; 
      return RedirectToAction("AssessmentArea", "AssessmentArea"); 
     } 

ビュー

@model Web.Models.AssessmentAreaContent 

@{ 
    ViewBag.Title = "Area"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
@using (Html.BeginForm()) 
{ 
    @{ 

    if (Model != null) 
         { 
     foreach (var category in Model.ListSysAssessmentSubAreaCategory) 
          {   


       <strong>@Html.EditorFor(item => category.AreaCategoryName)</strong> 
       <br /> 
     } 
} 
} 
<input type="submit" name="button" class="btn" value="Save" /> 
} 

私はにnull値を取得mは210 MVCでエンティティフレームワークを使用している3 どうすればいいですか?

おかげ

+0

Monu urモデルは、列挙型ではないプレーンオブジェクトです。どのようにそれを反復処理できますか? –

答えて

1

SysAssessmentSubAreaCategoryという名前のエディタテンプレートを作成します。テンプレートの名前はリストオブジェクトのタイプと同じであることに注意してください。このテンプレートでは、単にこれらの変更

if (Model != null) 
         { 
     Html.EditorFor(x=>x.ListSysAssessmentSubAreaCategory) 
     } 

を作るあなたのメインビューで

@model Web.Models.SysAssessmentSubAreaCategory 
<strong>@Html.EditorFor(item => category.AreaCategoryName)</strong> 
       <br /> 

ような何かを書く変わらず、残りを残します。フォームに記入して投稿すると、コントローラに値が表示されます。

+0

ありがとうございました:)))!! –

+0

Monu u r r welcome。生成されたhtmlを分析し、この記事http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspxを読んで、この時間リストが自動的にバインドされる理由を知ることができます –

0

ポストに戻って、プロパティが満たされていることがあるようにListSysAssessmentSubAreaCategoryための入力保持値がありません。

値をサーバー側(セッションなど)に保存するか、入力フォームで表示する必要があります。