我想從第一個下拉列表中填充第二個下拉列表。Jquery返回值「undefined」.net核心
這一切工作,但城市名稱和值只是返回「未定義」。 *城市數量返回正確,但名稱和數值總是「未定義」。 *
控制器:
[HttpPost]
public ActionResult getCityJson(string stateId)
{
int _stateid = Convert.ToInt32(stateId);
List<Cities> objcity = new List<Cities>();
objcity = _db.Cities.Where(m => m.stateID == _stateid).ToList();
SelectList obgcity = new SelectList(objcity, "CityID", "CityName", 0);
return Json(obgcity);
}
查看頁:
$("#istateid").change(function() {
var id = $("#istateid").val();
$.ajax({
url: '@Url.Action("getCityJson", "Home")',
data: { stateId: id },
cache: false,
type: "POST",
success: function (data) {
var markup = "<option value='0'>Select City</option>";
for (var x = 0; x < data.length; x++) {
markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>";
}
$("#icityid").html(markup).show();
},
error: function (reponse) {
alert("error : " + reponse);
}
});
});
我也試過公共JsonResult,並返回JsonResult和公衆的SelectList和返回的SelectList,但沒有一次成功。
我還嘗試這樣做:
$("#istateid").change(function() {
$.ajax({
type: "POST",
url: '@Url.Action("getCityJson", "Home")',
data: { stateId: $("#istateid > option:selected").attr("value") },
success: function (data) {
var items = [];
items.push("<option>--Choose Your City--</option>");
$.each(data, function() {
items.push("<option value=" + this.Value + ">" + this.Text + "</option>");
});
$("#icityid").html(items.join(' '));
}
}) });
我收到此在瀏覽器: (類型錯誤:數據[X]是未定義)
$("#istateid").change(function() {
var id = $("#istateid").val();
$.ajax({
url: '/Home/getCityJson',
data: { stateId: id },
cache: false,
type: "POST",
success: function (data) {
var markup = "<option value='0'>Select City</option>";
for (var x = 0; x < data.length; x++)
{ markup += "<option value=" + data[x].CityID + ">" + data[x].CityName + "</option>"; }
$("#icityid").html(markup).show();
},
error: function (reponse) {
alert("error : " + reponse);
}
});
});
<option value="0">Select City</option>
<option value="undefined">undefined</option>
<option value="undefined">undefined</option>
<option value="undefined">undefined</option>
當然,他們是不確定的。在編寫javascript代碼之前,你甚至可以查看json數據嗎?您正在返回一個'City'對象,它可能具有「Name」或「CityId」等屬性,但在您的代碼中,您可以訪問「Value」和「Text」。您需要創建一個新模型(或返回annotype模型)或使用** Model **的屬性,而不是Value/Text。在旁註中,不要在方法中調用同步數據庫代碼,一直使用異步方式。它會阻止您的請求線程並降低整體性能和可伸縮性 – Tseng
嘗試此操作對於(var x = 0; x 「+ data [x]。城市名稱+」「; }' –
仍然「未定義」。我也試過了。 this.Value,this.Text,但沒有任何作用。當我只輸入「this」時,它返回[Object object] – Neok