Я заселены два DropDownList на мой взгляд:Второй DropdownList всегда заполняет «[]« Значение?
<tr>
<td class="info_label">City</td>
<td>@Html.DropDownListFor(m=>m.User.City,Model.City,"-- Chọn thành phố --",new { @class = "dropdown" })</td>
</tr>
<tr>
<td class="info_label">Ward</td>
<td>@Html.DropDownListFor(m => m.User.Ward, Model.Ward, "-- Chọn quận --" ,new { @class = "dropdown" })</td>
</tr>
Когда я изменить значение первого DDL, то второй DDL также изменяются в зависимости от значения первого. И у меня есть сценарий jquery для этого. Вот мой код JQuery:
function LocationValue() {
$("#User_City").change(function() {
var cityName = $("#User_City").val();
if (cityName == null) {
$("Ward").prop("disabled", true);
}
else {
$("Ward").prop("disabled", false);
getWards(cityName);
}
});
}
function getWards(cityName) {
$.ajax({
url: "/Checkout/Wards",
data: { CityName: cityName },
dataType: "json",
type: "POST",
error: function() {
return;
},
success: function (data) {
var items = "";
$.each(data, function (i, item) {
items += "<option value=\"" + item.Value + "\">" + item.Text + "</option>";
});
$("#User_Ward").html(items);
}
});
}
и метод Post в моем контроллере:
[HttpPost]
public ActionResult Cities()
{
var cities = ILocaRepo.Cities;
return Json(new SelectList(cities,"CityID","CityName"));
}
[HttpPost]
public ActionResult Wards(string CityName)
{
var wards = ILocaRepo.ListWardByCityName(CityName);
return Json(new SelectList(wards, "WardID", "WardName"));
}
По какой-то причине, источник 2 DDL имеет Value = x.CityName.ToString()
, не имеет CityId (INT). В firebud, почему репсоном второго ddl всегда является []
. Любое объяснение моей ошибки?
Немного смущен, потому что в разметке у вас есть выпадающий список под названием «Город», но Int он JS, вы имеете в виду на «user_city». –
Потому что в firebug я проверяю ddl и вижу, что идентификатор его 'User_City', имя' User.City'. – Luffy