0
私は外部キーを持つモデルを持っています。 私の詳細は作成直後のMVCサブオブジェクトの読み取り
@Html.DisplayFor(model => item.CHILD.CHILDNAME)
で表示して、私は成功した子オブジェクトを参照することができます。しかし、私は新しい親を作成した後、私はサブオブジェクトを読み取ることができません。
public ActionResult Create([Bind(Include = "PARENTID,CHILDID")] PARENT pARENT)
{
if (ModelState.IsValid)
{
db.PARENTs.Add(pARENT);
db.SaveChanges();
ViewBag.CHILDID = new SelectList(db.CHILDs, "CHILDID", "CHILDNAME");
int childid=pARENT.CHILDID; //this works
string childname=pARENT.CHILD.CHILDNAME; //this returns null
return RedirectToAction("Index");
}
return View(pARENT);
}
新しい親レコードを作成した直後にCHILDNAMEを参照できるようにするにはどうすればよいですか?
私の推測では、データが保存され再読み込みされるまで、従属テーブルをリンクしていないモデルと関係があると思いますが、私はViewbagコールがこれを処理すると考えました。
作成機能で親オブジェクトをリロードすることはできますか?私はそれが次のページに当たる前に、子供の情報の一部を電子メールで送信したいと思います。これはどうすればいいですか? –
確かに。 SaveChangesの後に、そのクエリーにサブオブジェクトを含めることを保証しているDBを再クエリーするだけで、データを取得する必要があります。 –
私は純粋なMVCを使用していますが、直接データベースのSQLクエリーは行っていません。あなたの提案に基づいて、私は試みました: db.PARENTs.Add(pARENT); db.SaveChanges(); pARENT = db.PARENTs.Find(pARENT.PARENTID); ViewBag.CHILDID =新しいSelectList(db.CHILDs、 "CHILDID"、 "CHILDNAME"); - 保存後に検索を実行します。しかしこれはうまくいかなかった。レコードをリロードするサンプルコードを送信できますか? –