1
我遇到以下問題。一個對象有一個地址,這個地址有一個國家。爲了填補一個下拉列表,在我的部分類對象的使用屬性數據庫可用的國家:ADO.net參考中加載的屬性
Countries = new SelectList(repository.GetAllCountries(), "ID", "country_name", objectX.CountryID);
,並在:
public string CountryID {
get { return this.Addresses.Countries != null ? this.Addresses.Countries.ID.ToString() : null; }
set { this.Addresses.Countries = Repository.Instance.GetCountryByID(Convert.ToInt32(value)); }
}
清單本身是在formviewmodel所產生查看它使用這樣的:
<%= Html.DropDownList("CountryID", Model.Countries, "--select--")%><%= Html.ValidationMessage("CountryID", "*")%>
問題
當我創建一個新的對象一切順利這樣。在我給FormViewModel一個新的對象之前,我創建了一個新的(空白)地址對象和一個新的空白的Countries對象。我將它傳遞給FormViewModel中的視圖,並且可以根據需要創建對象。 問題出現時,我想編輯該對象具有相同的部分形式和相同的屬性,國家ID。它抱怨沒有地址,所以我要補充
this.AddressReference.Load()
使財產變成:
public string CountryID {
get { this.AddressesReference.Load(); return this.Addresses.Countries != null ? this.Addresses.Countries.ID.ToString() : null; }
set { this.AddressesReference.Load(); this.Addresses.Countries = Repository.Instance.GetCountryByID(Convert.ToInt32(value)); }
}
但現在我的創建方法,在創建的時候就不再使用的對象不(仍然必須保存到數據庫中),並且
this.addressReference.Load()
正在引起麻煩。
問題
有沒有一種方法,我可以用一個表格(局部視圖),和一個屬性上面用於創建和編輯的對象?
P.S.我開始不喜歡ADO.net在MVC1中的延遲加載,我猜這是在MVC2中修復的吧?