Cho các lớp và phương thức hành động của bộ điều khiển sau:
public School
{
public Int32 ID { get; set; }
publig String Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string Street1 { get; set; }
public string City { get; set; }
public String ZipCode { get; set; }
public String State { get; set; }
public String Country { get; set; }
}
[Authorize(Roles = "SchoolEditor")]
[AcceptVerbs(HttpVerbs.Post)]
public SchoolResponse Edit(Int32 id, FormCollection form)
{
School school = GetSchoolFromRepository(id);
UpdateModel(school, form);
return new SchoolResponse() { School = school };
}
Và hình thức sau:
<form method="post">
School: <%= Html.TextBox("Name") %><br />
Street: <%= Html.TextBox("Address.Street") %><br />
City: <%= Html.TextBox("Address.City") %><br />
Zip Code: <%= Html.TextBox("Address.ZipCode") %><br />
Sate: <select id="Address.State"></select><br />
Country: <select id="Address.Country"></select><br />
</form>
Tôi có thể cập nhật cả phiên bản Trường học và thành viên Địa chỉ của trường. Điều này là khá tốt đẹp! Cảm ơn nhóm ASP.NET MVC!
Tuy nhiên, làm cách nào để sử dụng jQuery để chọn danh sách thả xuống để tôi có thể điền trước nó? Tôi nhận ra rằng tôi có thể làm phía máy chủ này nhưng sẽ có các yếu tố động khác trên trang ảnh hưởng đến danh sách.
Sau đây là những gì tôi có cho đến nay và nó không hoạt động vì các bộ chọn dường như không khớp với ID:
$(function() {
$.getJSON("/Location/GetCountryList", null, function(data) {
$("#Address.Country").fillSelect(data);
});
$("#Address.Country").change(function() {
$.getJSON("/Location/GetRegionsForCountry", { country: $(this).val() }, function(data) {
$("#Address.State").fillSelect(data);
});
});
});