tôi có các lớp học này, người được ánh xạ sử dụng Entity Framework Mã đầu tiên:ASP.NET MVC 3 One-To-Nhiều Mẫu
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
//... additional properties
[Required]
public virtual ICollection<Address> Addresses { get; set; }
}
public class Address
{
public int AddressId { get; set; }
public string Street { get; set; }
//... additional properties
public int PersonId { get; set; }
public virtual Person Person { get; set; }
}
Vì vậy, sử dụng ASP.NET MVC 3, làm thế nào tôi có thể thực hiện các Chỉnh sửa Xem để Người điền tất cả các thuộc tính của Người trong một Địa chỉ trong một Biểu mẫu?
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Adresses.FirstOrDefault().Street)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Adresses.FirstOrDefault().Street)
@Html.ValidationMessageFor(model => model.Adresses.FirstOrDefault().Street)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
Điều này hoạt động tốt để hiển thị đầu vào với Đường từ cơ sở dữ liệu, nhưng khi tôi gửi, Đường không thay đổi.
[HttpPost]
public ActionResult Edit(int id, FormCollection formCollection)
{
Person person = unityOfWork.PersonRepository.GetById(id);
UpdateModel<Person>(person);
if (ModelState.IsValid)
{
unityOfWork.PersonRepository.Update(person);
unityOfWork.SaveChanges();
return RedirectToAction("Index");
}
return View(person);
}