.Net의 Ajax.BeginForm을 사용하여 양식을 제출하고 개체 목록을 얻으려고합니다.JsonResult를 반환하는 MVC Ajax.BeginForm이 클라이언트에서 성공하지 못합니다.
@using (Ajax.BeginForm("ValidateEmployee", new AjaxOptions { OnBegin = "onBegin", OnSuccess = "onSucess", UpdateTargetId = "results"})
문제는 내 컨트롤러가 JsonResult을 반환하고 내가 JSON으로 내 반환 목록을 변환 할 때 onsuccess는 콜백이 호출되지 않습니다 및 ID가 "결과"내 사업부가 업데이트되지 않습니다이다. 그러나 onBegin 콜백이 호출됩니다. 컨트롤러는 이렇게 보입니다.
public JsonResult ValidateEmployee(Employee emp)
{
...
List<Role> roles = new Role();
foreach(var x in myCollection)
{
roles.Add(new Role { ID = x.ID, Name = x.Name });
}
return Json(roles);
}
나는 Json(roles)
가 제대로 유효한 JSON으로 목록을 변환 않는 것을 확인했습니다. 그러나 onSuccess가 실행되지 않기 때문에 사용할 수 없습니다.
이상하게도 json으로 목록을 변환하지 않고 그냥 .Net 목록으로 반환하면 두 콜백이 모두 발생하고 업데이트 할 요소가 출력됩니다. System.Collections.Generic.List'1 [Models.Role] . 따라서 json이 아니며 데이터를 사용할 방법이 없습니다.
그렇다면 컨트롤러에서 json 개체를 반환 할 때 onSuccess가 호출되지 않는 이유는 무엇입니까?
MVC 3을 사용하고 있으며 jquery.unobtrusive-ajax.js를 참조하고 있습니다.
도움 주셔서 감사합니다.
점이 부족하다고 생각합니다. @using (Ajax.BeginForm ("ValidateEmployee", 새로운 AjaxOptions {OnBegin = "onBegin", onSuccess = "onSucess", UpdateTargetId = "results"} – ysrb
그리고 OnSuccess (자본 O)이어야합니다 – ysrb
감사합니다. – nthpixel