2017-10-16 2 views
-1

ASP.Net MVC 5를 사용하고 있습니다. 역할 테이블 값이 포함 된 테이블이 있습니다. 편집 단추를 클릭하면 데이터를 가져 오는 jQuery 요청을 보내고 "UMS.Entities.Role" 같은 데이터를 반환하지만 데이터베이스에서 응답을 받고 있지만 값을 얻지 못하고 있지만 jQuery에서 문제가 발생합니다.jQuery가 ASP.Net MVC 5에서 요청을받습니다.

function dataForEdit(id) { 
    var data = GetRequestedData('/Admin/Role/Edit/' + id); 
    $("#create-form").slideDown(); 
    $('.formEditBtn').slideDown(); 
    setInputValue('#role-name', data.Name); 
    $("#roleID").attr("value", data.RoleId);   
} 

GetRequestedData('/Admin/Role/Edit/' + id)은 별개의 파일입니다.

function GetRequestedData(url) { 
    $.ajax({ 
    url: url, 
    async: false, 
    type: 'GET', 
    success: function (data) { 
     resultData = data; // here I am getting this UMS.Entities.Role 
    }, 
    error: function (error) { 
     $(this).remove(); 
     alert(error.statusText); 
    } 
    }); 

    return resultData 
} 

내 컨트롤러 기능은 당신이 JSON 결과를 반환해야한다고 생각

public Role Edit(int id) { 
    Role role = _roleService.GetById(id); 
    return role; 
} 

답변

0

, 당신이 시도 할 수 있습니까?

public ActionResult Edit(int id) 
{ 
    Role role = _roleService.GetById(id); 
    return Json(role , JsonRequestBehavior.AllowGet); 
} 
0

우선, 매우 나쁜 습관 인 async: false을 사용하고 있습니다. 비동기 패턴을 적절하게 사용하고 AJAX 호출이 완료된 후 콜백을 사용하여 로직을 실행하십시오.

즉, Role 클래스가 ToString()을 통해 직렬화되기 때문에 코드의 주된 문제가 있다고 말했습니다.

:

public ActionResult Edit(int id) 
{ 
    Role role = _roleService.GetById(id); 
    return Json(role, JsonRequestBehavior.AllowGet); 
} 

이 그런 다음 JS 코드에서 당신이 success 콜백에 제공되는 data 인수에 Role 클래스의 속성을 검색 할 수 있습니다 : 대신 JSON이 같은 그것을에는 직렬화 더 적용 할 것

function dataForEdit(id) { 
    GetRequestedData('/Admin/Role/Edit/' + id, function(data) { 
    $("#create-form, .formEditBtn').slideDown(); 
    setInputValue('#role-name', data.Name); 
    $("#roleID").val(data.RoleId); 
    }); 
} 

function GetRequestedData(url, callback) { 
    $.ajax({ 
    url: url, 
    type: 'GET', 
    success: callback, 
    error: function(error) { 
     $(this).remove(); 
     alert(error.statusText); 
    } 
    }); 
} 

GetRequestedData('/Admin/Role/Edit/' + id); 
+0

당신의 소중한 경험을 나에게 나누어 주심에 감사드립니다. –

+0

@KhizranAhmad 허용 된 답변을 변경해야한다고 생각하는 이유가 무엇입니까? –

관련 문제