Aşağıdaki sınıflar ve denetleyici eylem yöntemi göz önüne alındığında:
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 };
}
Ve aşağıdaki form:
<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>
Hem Okul örneğini hem de okulun Adres üyesini güncelleyebiliyorum. Bu çok hoş! ASP.NET MVC ekibine teşekkür ederiz!
Ancak, önceden doldurabilmem için açılır listeyi seçmek için jQuery'i nasıl kullanabilirim? Bu sunucu tarafını yapabileceğimin farkındayım ama sayfada listeyi etkileyen başka dinamik öğeler de olacak.
Şimdiye kadar sahip olduğum şey şu, ve seçiciler kimliklerle eşleşmediği için çalışmıyor:
$(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);
});
});
});