2012-02-02 20 views
1

ナビゲーションプロパティがあるのはどうですか?私は編集しようとしているモデルに別のモデルのコレクションを持っています。私は各オブジェクトのチェックボックスのリストをコレクションプロパティに表示したいと思います。これまでのところ、これは私が試したものです...ASP.NET MVC @ Html.EditorFor(model => model.property)ただし、

@{ 

      foreach (var category in ViewBag.Categories) 
      { 
       if (Model.Categories.Contains(category)) 
       { 
        <input type="checkbox" name="selected-categories" value="category.CategoryId" checked="checked" />@category.Name 
       } 
       else 
       { 
        <input type="checkbox" name="selected-categories" value="@category.CategoryId" />@category.Name 
       } 
      } 
     } 

しかし、EntityCommandExecutionExceptionで失敗します。私のifステートメントでは、どのように私はモデルにアクセスできますか?@Html.EditorFor(model => model.Id)のような何かのようなカテゴリ?

答えて

0

強く型付けされたビューを使用するのが私のやり方です。モデルを含むViewModelを作成し、強く型付けされたViewにこのViewModelを使用します。その後

ドメインモデルとViewModelに(簡体字)

public class YourModel 
{ 
    string Category { get ; set ; } 
} 

public class YourViewModel 
{ 
    public List<string> PossibleCategories { get ; set ; } 
    public YourModel YourData { get ; set ; } 
} 

ビュー:

@model YourViewModel 


@{ 
    foreach (string CurrCategory in Model.PossibleCategories) 
    { 
     if (Model.YourData.Category == CurrCategory) 
     { 
      @Html.CheckBox(CurrCategory, new { @checked = "checked" }) 
      @Html.Encode(CurrCategory) <br /> 
     } 
     else 
     { 
      @Html.CheckBox(CurrCategory, false) 
      @Html.Encode(CurrCategory) <br /> 
     } 
    } 
} 
+0

こんにちは、応答に感謝します。私は代わりにforループをやり終え、それは働いているようだ。しかし、もう一度あなたの援助に感謝します。 –

+0

@ user1066133なぜ簡単な 'for'ループを' IEnumerable'を実装するオブジェクトに使うのですか? –

+0

私は最近foreachに戻しました。私がViewBag.Categories = db.Categoriesを設定しているので、それが前に解消された理由は、コントローラーではなくdb.Categories.ToList(); –

関連する問題