我有兩個實體: 1)學生 和2)地址。如何爲兩個相關實體創建視圖和視圖模型
public class Student
{
Public Int StudentId { get; set; }
Public String FullName { get; set; }
Public virtual IList<Address> Addresses { get; set; }
}
public class Address
{
Public Int AddressId { get; set; }
Public Int StudentId { get; set; }
Public String FullAddress { get; set; }
Public virtual Student Student { get; set; }
}
每個學生可能有零個或多個地址。
我想爲這兩個實體創建單個視圖。我知道必須創建一個視圖模型。這是視圖模型。
public class StudentViewModel
{
Public Int StudentId { get; set; }
Public String FullName { get; set; }
public Address AddAddressModel { get; set; }
Public virtual IList<Address> Addresses { get; set; }
}
我創建了一個StudentViewModel視圖。這是StudentViewModel:
@model MyProject.Models.StudentViewModel
@{
ViewBag.Title = "Create";
}
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<div class="editor-label">
@Html.LabelFor(model => model.FullName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FullName)
@Html.ValidationMessageFor(model => model.FullName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.AddAddressModel.FullAddress)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.AddAddressModel.FullAddres)
@Html.ValidationMessageFor(model => model.AddAddressModel.FullAddres)
</div>
<button id="add">add address to list</button>
<input type="submit" value="save in database" />
</fieldset>
請告訴我,我怎麼能對一個在StudentViewModel的地址屬性添加一個或多個地址,這種操作對用戶後顯示。最後當我點擊「保存數據庫」按鈕的學生和他的地址必須插入數據庫。
謝謝CornéM創建模板,但我想用我的模型。因爲我想把這個模型擴展到這樣的複雜模型:工廠和他的分支。請告訴我更多關於第一個解決方案:在表單提交之前將表單序列化爲JSON對象 – 2013-02-22 13:15:25
嗨,您可以使用此插件將表單序列化爲複雜的JSON對象:http://stackoverflow.com/a/8407771/1746803。然後,您可以簡單地使用'$ .post()'將對象發送到您的腳本。我已經多次使用這個解決方案和複雜的模型,它還沒有讓我失望。 – Knelis 2013-02-22 15:04:45