下面是我的代碼,我不知道我在做什麼錯了?下拉菜單填充另一個c#mvc json ajax
的Ajax JSON jQuery代碼
function FillCity() {
var countryid = $("select[name$='.countryid']").val(); //<---- this is dynamic
$.ajax({
url: "Controller/FillMyCity",
type: "POST",
dataType: "json",
data: { country: countryid } ,
success: function (city) {
$("select[name$='.cityid']").html(""); // <--- this is dynamic
$.each(city, function (i, pp) {
$("select[name$='.cityid']").append(
$('<option></option>').val(pp.cityid).html(pp.name));
});
},
error: function (err) {
alert(err);
}
});
}
控制器方法
public JsonResult FillMyCity(int country)
{
var cities = db.Cities.Where(x => x.countryid == country).ToList().Select(item => new City
{
cityid = item.cityid,
name = item.name
}).AsQueryable();
return Json(cities, JsonRequestBehavior.AllowGet);
}
查看
@Html.DropDownList("Country[" + i + "].countryid", (SelectList)ViewData[countries], string.Empty, new { @class = "form-control countries", @id = "mycountry" + i + "", @onchange = "FillCity()" })
@Html.DropDownList("City[" + i + "].cityid", new SelectList(Enumerable.Empty<SelectListItem>(), "cityid", "name"), "Select city", new { @class = "form-control cities", @id = "mycity" + i + "" })
輸出
EmployeeName Country City
Jenny ddl of countries ddl of cities
John ddl of countries ddl of cities
問題1:當我選擇Jenny的國家時,Jenny + John的城市ddl都有Jenny's Country的城市居住,但它只應用於Jenny。當我選擇國家約翰城市DDL列表沒有得到填充所以只有珍妮的作品,約翰不
問題2:因爲它是一個動態json jquery附加html,我無法保存城市的價值,這是由於它是動態的並且不出現在視圖源中。
你應該清楚你自己更具體的......你確切的問題是什麼? –
@ Md.MostafizurRahman我上面說過的問題是,當我爲Jenny選擇一個國家時,那個國家的城市也會爲John's城市的ddl填充?它應該只適用於珍妮。我說的另一個問題是無法將「城市」保存到數據庫中,因爲它是動態的。謝謝 – NULL