У меня есть контроллер jsonresult MVC 3, который возвращает строку JSON, которая содержит регионы, связанные с конкретной страной, код ниже:
public JsonResult getRegions(int countryID)
{
var regions = from r in db.Regions where r.CountryID == countryID select r;
var builder = new StringBuilder();
builder.Append("[");
foreach (Region region in regions)
//builder.AppendFormat("{0}, \"{1}\"", "RegionID: " + region.RegionID, "RegionName: " + region.RegionName);
builder.Append("{ RegionID: " + region.RegionID + ", RegionName: " + region.RegionName + "},");
//var result = builder.ToString().TrimEnd(new char[] { ',', ' ' }) + "]";
builder = builder.Append("]");
var result = builder.Replace(",]", "]");
return Json(result.ToString(), JsonRequestBehavior.AllowGet);
}
Возвращает строку в формате JSON, предположим, что выбранная страна была Кения, строка вывода выглядит следующим образом:
[{ RegionID: 1, RegionName: Nairobi Region},{ RegionID: 3, RegionName: Coast Region}]
У меня есть javascript, который передает идентификатор страны контроллеру, чтобы получить регионы, которые я в итоге хочу использовать для заполнения нового выпадающего списка. Мой JavaScript выглядит следующим образом:
$(document).ready(function () {
$("#CountryID").change(function () {
$.ajax({
type: "GET",
url: "/ajaxcalls/getregions",
data: "countryID=" + $("#CountryID :selected").val(),
datatype: "json",
success: function (result) {
var options = ("#regions");
$.each(result, function (item) {
alert(item.RegionID + " " + item.RegionName);
});
},
error: function (req, status, error) {
alert(error + " " + req);
}
});
});
});
Но всплывающее предупреждение гласит:
undefined undefined.