クラス(ClassA)を使用してMVCによって作成された基本的な作成/編集/削除/インデックス形式があります。このクラスには、オブジェクトのリスト(ClassB)が含まれています。
ビューを呼び出してオブジェクトを編集すると、ClassAのすべてのメンバー(テキストフィールドなど)を編集できますが、オブジェクトのリストを編集してから、ポストアクションに戻すにはどうすればよいですか?
オブジェクトを作成して反復処理し、フォームに追加しようとすると、オブジェクト(ClassA)とともに返されません。また、オブジェクトのリストは空です。
助けてください。これを行うためのベストプラクティスは何ですか?
以下は例です
public ActionResult Edit(int id)
{
ClassA objA = db.ClassAs.Single(a => a.id == id);
objA.myListOfBs.Add(new ClassB());
return View(objA);
}
[HttpPost]
public ActionResult Create(ObjectA obj)
{
obj.myListOfBs <--- this is empty! :(
if (ModelState.IsValid)
{
}
return View(obj);
}
モデルクラスは次のとおりです。
class ClassA {
int id;
List<ClassB> myListOfBs;
}
class ClassB {
int id;
string name;
}
これが私の見解です
@model MyProject.Models.ClassA
@{
ViewBag.Title = "ClassA Object";
}
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Objects</legend>
@Html.EditorFor(model => model.myListOfBs)
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}