2012-05-04 17 views
1

我對ASP和MVC比較陌生,但到目前爲止還沒有成功。我正在使用數據庫第一種方法,並有我的數據庫表所有設置(這是一個現有的數據庫清理與FKs等)。ASP.net MVC使用partials創建相關對象

我有FKS的路徑:

Contact 
    - LettingContact 
     - Landlord   
     - Tenant 

我想能夠使用泛音到例如顯示數據/聯繫人/ _Create將保存聯繫人信息,即標題,姓名和姓名,並將由/ Contact/Create和/ Tenant/Create使用。我設法讓它不使用partials,只使用租戶/創建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 

現在,當我點擊提交按鈕它會轉到我的/租戶/創建發佈活動。

[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");    
    } 
} 

然而,其讀取tenant.LettingContact.Contact.ContactID崩潰將一個NullReferenceException到LettingsContact爲空行。任何理由爲什麼部分不維護模型?

此外,如果有更好的方式做到這一點,請讓我知道,因爲這對我來說仍然是非常新的。

我想用諧音的原因是,它使我重新使用jQuery的模態形式等形式

+0

需要更多的信息?謝謝 – Dudedolf

+0

它在租戶理論和租戶財產之間混淆。 – Kramer

回答

1

如果你想有一個表來發表回來,你不希望顯示的頁面上的信息你應該使用隱藏字段。看看Html.Hidden()Html.HiddenFor()

隱藏在MSDN:http://msdn.microsoft.com/en-us/library/system.web.mvc.html.inputextensions.hidden.aspx

HiddenFor MSDN上:http://msdn.microsoft.com/en-us/library/system.web.mvc.html.inputextensions.hiddenfor.aspx

+0

謝謝,我發現了另一種(不太優雅的)方式,但會在下次試用這個:) – Dudedolf

相關問題