Gegeben die folgenden Klassen und Controller-Aktionsmethode:
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 };
}
Und die folgende 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>
Ich kann sowohl die Schulinstanz als auch das Adressmitglied der Schule aktualisieren. Das ist ganz nett! Vielen Dank an das ASP.NET MVC-Team!
Wie verwende ich jedoch jQuery, um die Dropdown-Liste auszuwählen, damit ich sie vorab ausfüllen kann? Mir ist klar, dass ich diese Serverseite ausführen kann, aber es gibt andere dynamische Elemente auf der Seite, die sich auf die Liste auswirken.
Folgendes habe ich bisher und es funktioniert nicht, da die Selektoren nicht mit den IDs übereinstimmen:
$(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);
});
});
});