첫 번째 드롭 다운 목록 (국가 포함)에서 선택한 항목에 따라 두 번째 드롭 다운 목록 (카운티 포함)을 채우려고합니다.계단식 드롭 다운 목록을 채우기 위해 JSON으로 적절한 결과를 반환하는 방법은 무엇입니까?
public JsonResult GetCounties(string id)
{
DBEntities dc = new DBEntities();
JsonResult result = new JsonResult();
var filteredDivisions = from div in dc.Divisions
where div.CountryID == 1 //id
select div;
result.Data = filteredDivisions.ToList();
return Json(result.Data, JsonRequestBehavior.AllowGet);
// return Json(new[] {
// new { Id = filteredDivisions.ToArray()[0].DivisionID, Value = filteredDivisions.ToArray()[0].DivisionName },
// new { Id = 2, Value = "value 2" },
// new { Id = 3, Value = "value 3" },
//}, JsonRequestBehavior.AllowGet);
}
공지 주석 섹션 :
나는 컨트롤러 액션이라는 GetCounties 있습니다. 저에게 잘 작동합니다 (부서 목록에서 첫 번째 값을 얻었고 다른 두 값은 "값 2"와 "값 3"이라고합니다.) 콜백을 테스트하기 위해이 값을 사용했지만 나에게주는 유일한 값이었습니다 결과 사용 :...
return Json(result.Data, JsonRequestBehavior.AllowGet);
뷰 측에 아무것도를 달성하지 않습니다 디버깅, 모든 권리 값이 존재하지만 다운 목록보기 측의 드롭을 마련하지 않는 내가 말했듯이 때, 내가 얻은 유일한 결과는 주석 처리 된 코드 (하드 코드 된 값은 물론 충분하지 않음)를 사용하는 것입니다. 배열을 채우기 위해 반복을 위해 루프를 사용하려고했지만 아무 것도 작동하지 않습니다. 익명 형식이 읽기 전용이므로 다시 설정할 수 없으므로 오류가 발생합니다.
$(function() {
$.getJSON('/Entity/GetCounties', function (result) {
var ddl = $('#DivisionsList');
ddl.empty();
$(result).each(function() {
$(document.createElement('option'))
.attr('value', this.Id)
.text(this.Value)
.appendTo(ddl);
});
});
});
divisionslist은 물론 자사의 모든 값을 포함하는 즉, 위의 비 주석 return 문을 사용하여, 단지 변경 반환 모든 카운티와 드롭 다운, 그리고하지 :이 내 jQuery 코드입니다 선택한 나라에 따라 달라질 수있는 것들. JSON을 사용하여 뷰를 가져올 수 있도록 필터링 된 결과를 가진 배열을 어떻게 나타낼 수 있습니까? 내가 게시 한이 코드를 사용하고 싶습니다. 단 한 번 작동 한 코드였습니다. 하드 코딩 된 값을 올바른 값으로 바꿔줘. 그게 내가 문제가되는 곳이야.
도와주세요.