반응형
MVC 컨트롤러에서 개체 목록과 함께 JsonResult 반환
MVC 컨트롤러에 간단한 방법이 있습니다.
[HttpPost]
public JsonResult GetAreasForCompany(int companyId)
{
var areas = context.Areas.Where(x => x.Company.CompanyId == companyId).ToList();
return Json(areas);
}
다음은 영역 객체입니다.
public class Area
{
public int AreaId { get; set; }
[Required]
public string Title { get; set; }
public bool Archive { get; set; }
public virtual Company Company { get; set; }
}
그리고 내가 보기에 그 방법은 다음과 같습니다.
$.ajax({
url: '@Url.Action("GetAreasForCompany")',
type: 'POST',
async: false,
data: "{'companyId': " + companyId + "}",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
error: function () {
alert("Server access failure!");
},
success: function (result) {
response = result;
}
});
컨트롤러에서 메소드를 확인해보니 Area 객체의 목록이 생성됩니다.뷰에서 메소드를 호출할 때 내부 서버 500 오류가 발생하는 이유를 알고 계십니까?다른 항목(Dictionary 개체 등)을 반환하면 모든 것이 정상적으로 작동합니다. 영역 목록을 Json으로 변환하려고 할 때 오류가 발생합니다.
수업 이후Area
포함하다Company
그리고.Company
의 컬렉션을 포함합니다.Area
JSON 직렬화 프로그램에서 지원하지 않는 순환 참조가 개체 계층에 있을 수 있습니다.이 문제를 해결하려면 필요한 속성만 포함한 익명 개체를 반환합니다.
[HttpPost]
public JsonResult GetAreasForCompany(int companyId)
{
var areas = context.Areas
.Where(x => x.Company.CompanyId == companyId)
.Select(a => new
{
AreaId = a.AreaId,
Title = a.Title
});
return Json(areas);
}
목록 개체를 Json으로 반환(Jquery에도 유용)UI 및 Linkq 방법)
public ActionResult GetItemList()
{
var search = Request.Params["term"];
var itemList = (from items in db.TblItems where items.ItemName.StartsWith(search) select new { label = items.ItemName, value = items.ItemName }).ToList();
return Json(itemList, JsonRequestBehavior.AllowGet);
}
언급URL : https://stackoverflow.com/questions/25402894/return-jsonresult-with-list-of-objects-from-mvc-controller
반응형
'source' 카테고리의 다른 글
확인란이 선택되지 않은 경우 선택 - jQuery를 클릭합니다. (0) | 2023.08.20 |
---|---|
CSS 미디어 쿼리를 사용하여 장치 방향을 탐지하는 방법은 무엇입니까? (0) | 2023.08.20 |
Url.Action이 제 URL에 &을 넣었는데 어떻게 해결해야 하나요? (0) | 2023.08.20 |
루프 X 횟수 (0) | 2023.08.20 |
자바스크립트를 사용하여 HTML 버튼을 비활성화하는 방법은? (0) | 2023.08.20 |