ASP.NET MVC 3 Editor Template のこの投稿IEnumerable モデル プロパティと同様に、私は持っています
モデル
public class Student
{
public int StudentId { get; set; }
public string StudentName{ get; set; }
//FYI..Its virtual because of EF relationship
public virtual ICollection<Class> Classes{ get; set; }
}
public class Class
{
public int ClassId { get; set; }
public string ClassName{ get; set; }
}
表示 - 学生の編集
@model Student
@Html.TextBoxFor(m => m.StudentName)
//I get the error for following..see below
@Html.EditorFor(m => m.Classes);
学生/編集者テンプレート/クラス
@model Class
<div>
@*checkbox here*@
@Html.LabelFor(x => x.ClassName)
</div>
コントローラ
public ActionResult EditStudent(int id)
{
ViewBag.Classes = repository.GetClasses();
Student student = repository.GetStudent(id);
return View("EditStudent", student);
}
ステートメント @Html.EditorFor(m => m.Classes) のビューのエラー。は..
ディクショナリに渡されるモデル アイテムのタイプは 'System.Collections.Generic.HashSet`1[Class]' ですが、このディクショナリにはタイプ 'Class' のモデル アイテムが必要です。
基本的に、私が達成しようとしているのは、利用可能なすべてのクラスのリストを表示し、その横にチェックボックスを付けることです (コードのその部分にはまだ到達していません)。次に、生徒が登録されているすべてのクラスを確認し、選択を変更できるようにします。
- 指定されたモデルでチェックボックスのリストを表示するにはどうすればよいですか。
- EditorTemplate を ViewBag.Classes (どのように) にバインドする必要がありますか?
- Post ActionMethod で選択したチェックボックスの値も取得する必要があります。
- CheckBoxListHelper の作成を提案するいくつかの投稿を読みましたが、単純なリストを表示する必要があるため、EditorTemplate で実行できるはずです。
提案してください。ありがとう。