รับคลาสต่อไปนี้และวิธีการดำเนินการควบคุม:
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 };
}
และแบบฟอร์มต่อไปนี้:
<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>
ฉันสามารถอัปเดตทั้งอินสแตนซ์ของโรงเรียนและสมาชิกที่อยู่ของโรงเรียนได้ มันค่อนข้างดี! ขอบคุณทีม ASP.NET MVC!
อย่างไรก็ตามฉันจะใช้ jQuery เพื่อเลือกรายการแบบหล่นลงเพื่อให้ฉันสามารถเติมไว้ล่วงหน้าได้อย่างไร ฉันรู้ว่าฉันสามารถทำฝั่งเซิร์ฟเวอร์นี้ได้ แต่จะมีองค์ประกอบแบบไดนามิกอื่น ๆ ในหน้าเว็บที่มีผลต่อรายการ
ต่อไปนี้เป็นสิ่งที่ฉันมีจนถึงตอนนี้และมันไม่ทำงานเนื่องจากตัวเลือกดูเหมือนจะไม่ตรงกับรหัส:
$(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);
});
});
});