이전에 동일한 예제를 만든 위치에 대해 데이터베이스에서 결과로 JSON 파일을 반환하는 함수를 호출하는이 스크립트를 사용하여 이름보기를 변경할 수 있습니다.
<div class="col-md-8">
@Html.DropDownListFor(r=>r.locationID ,new SelectList(Model.Locations,"ID","Name"), new { @class = "form-control TowerLoc" ,id = "location", OnChange="ChangeContent()" })
</div>
<div class="col-md-6">
<label class="col-md-4 control-label">Tower</label>
<div class="col-md-8">
@Html.DropDownListFor(r=>r.TowerID, new SelectList(Model.Towers,"TowerID","TowerName"),new { @class = "form-control" , id="Towers"})
</div>
</div>
스크립트:
<script>
$("#location").change(function () {
$("#Towers").find("option:gt(0)").remove();
$("#Towers").find("option:first").text("Loading...");
$.getJSON("/Inquiries/GetChildren", {
parentid: $(this).val()
}, function (json) {
$("#Towers").find("option:first").remove();
for (var i = 0; i < json.length; i++) {
$("<option/>").attr("value", json[i].TowerID).text(json[i].TowerName).appendTo($("#Towers"));
}
});
});
</script>
함수:
public JsonResult GetChildren(int parentID)
{
var children = (from g in _db.Towers.Where(r => r.ProvinceID == parentID).ToList()
select new Tower
{
TowerID = g.TowerID,
TowerName = g.TowerName
}).ToList();
return Json(children, JsonRequestBehavior.AllowGet);
}
출처
https://stackoverflow.com/questions/22009778