私は自分のデータベースを生成するためにEntity Frameworkのコードファーストを使用していますので、私は次のように定義されたオブジェクトいる:今、私はこのために作成、表示、デフォルトの足場でRazorでASP.NET MVC 3を使用すると、ICollectionを作成ビューに追加する最も効果的な方法は何ですか?
public class Band
{
public int Id { get; set; }
[Required(ErrorMessage = "You must enter a name of this band.")]
public string Name { get; set; }
// ...
public virtual ICollection<Genre> Genres { get; set; }
}
を探しているではありません過去の経験から私が期待していることについて、ジャンルに私のフォームを追加しています。
オンラインで見る私はUsing ASP.NET MVC v2 EditorFor and DisplayFor with IEnumerable<T> Generic typesが私が望むものに最も近いと思われますが、ASP.NET MVC 3 Custom Display Template With UIHint - For Loop Required?の場合、RazorとMVC 3で意味をなさないようです。現時点では
私はViewBagにジャンルのリストを追加して、私の作成ビューでそのリストをループしました:まだユーザーは、JavaScriptが無効になっていると、チェックボックスのケースを処理していない社外
@{
List<Genre> genreList = ViewBag.Genres as List<Genre>;
}
// ...
<ul>
@for (int i = 0; i < genreList.Count; i++)
{
<li><input type="checkbox" name="Genres" id="[email protected](i.ToString())" value="@genreList[i].Name" /> @Html.Label("Genre" + i.ToString(), genreList[i].Name)</li>
}
</ul>
再チェックする必要があり、実際にこの情報でデータベースを更新すると、私は好きなようにジャンルを出力します。
しかし、これはMVC 3がどれほど良いものになったかに基づいて、気分が悪いです。
MVC 3でこれを処理する最も効果的な方法は何ですか?
申し訳ありませんが、実際にこれを実装する時間を探しています。しかし、それはあなたの答えに追加の文脈を追加するあなたの質問http://stackoverflow.com/q/7155747/11912を指摘する価値があります。 –