私は比較的新しいASPとMVCですが、これまでのところOKです。私はDBの最初のアプローチを使用していると私のDBテーブルをすべてのセットアップ(それはFKsなどでクリーンアップされた既存のDB)です。ASP.net MVCはパーシャルを使って関連オブジェクトを作成します
IはFKSのルートを持っている:
Contact
- LettingContact
- Landlord
- Tenant
Iは、データ、例えばを表示するパーシャルを使用できるようにしたいと思い/ Contact/_Createは連絡先情報(Title、Forename、Surname)を保持し、/ Contact/Createおよび/ Tenant/Createの両方で使用されます。パーシャルを使用せず、Tenant/Create htmlフォームのフィールドを使用して、モデルから関連するデータを表示するだけで、それを実現できました。テナントに/私は、次のやったコントローラで作成し、私は送信ボタンをクリックしたときに
Tenant tenant = new Tenant();
LettingsContact lettingsContact = new LettingsContact();
Contact contact = new Contact();
tenant.LettingsContact = letContact;
tenant.LettingsContact.Contact = contact;
return View(tenant)
今見る今すぐ
//using Html.BeginForm etc
@{
Html.RenderPartial("../Contact/_Create", Model.LettingsContact.Contact);
Html.RenderPartial("_Create", Model);
}
<input type="submit" value="create">
//rest of html
される(以下を行うには、私がnullの部分で例外を取得停止しました)私の/テナント/ポストイベントの作成に行きます。 tenant.LettingContact.Contact.ContactID
クラッシュを読み込む行がLettingsContactへとNullReferenceExceptionがnullになるしかし
[HttpPost]
public ActionResult Create(Tenant tenant)
{
if (ModelState.IsValue)
{
tenant.ContactID = Guid.NewGuid();
tenant.LettingsContact.Contact.ContactID = tenant.ContactID;
db.Tenants.AddObject(tenant);
db.SaveChanges();
return RedirectToAction("Index");
}
}
。部分モデルがモデルを維持していない理由は何ですか?
また、これを行うより良い方法がある場合は、私にはこれがまだとても新しいのでお知らせください。
私はパーシャルを使用したい理由は、それがjQueryのモーダルフォームでフォームを再利用するために私を可能にすることであるなど
が必要なの詳細ですか?おかげで – Dudedolf
テナントの引数とテナントのプロパティを混同します。 – Kramer