2015-01-14 3 views
2

안녕하세요. 저는 아약스를 사용하여 ID로 상세 모델을 호출하고 있습니다. 그러나 모델 반환 데이터가 null 인 경우 메시지를 표시하려고합니다. 내가 어떻게 할 ? 당신이 (비즈니스 모델 오류와 같은) json 객체를 반환하는 경우오류 메시지가있는 json을 반환하는 방법

내 코드 아약스 표시 세부 모델

$('#PGId').blur(function() { 
     var errormsg = ""; 
     var id = $('#PGId').val(); 
     $.ajax({ 
      type: "GET", 
      url: '@Url.Action("GetDetailPG", "TimeSheetHeader")', 
      data: { pgId: id }, 
      dataType: "json", 
      success: function (data) { 
       success: function (data) { 
       if (data.isValid) { 
        $("#FullName").text(data.FisrtName + " " + data.LastName) 
        $('.Shiff[value="' + data.ShiffId + '"]').prop('checked', true) 
       } 
       else { 
        alert(data.error); 
       } 
      }, 
      }, 
      error: function() { 

      } 
     }); 
    }) 

내 컨트롤러 (자바 스크립트 data 값을 데이터

[HttpGet] 
    public ActionResult GetDetailPG(string pgId) 
    { 
     PGProfileViewModel pgProfileModel = new PGProfileViewModel(); 
     pgProfileModel.PGId = pgId; 
     var query = _pgProfileService.GetPGProfileById(pgProfileModel.PGId); 
     var model = query.ToViewModel(); 

     if (model == null) 
     { 
      return Json(new {isValid = false, error = "Error Message"}, JsonRequestBehavior.AllowGet); 
     } 
     else 
     { 
      model.LastName = query.LastName.Trim(); 
      model.FisrtName = query.FisrtName.Trim(); 
      model.ShiffId = query.ShiffId; 
      return Json(new { model = model , isValid = true }, JsonRequestBehavior.AllowGet); 
     } 
    } 
+0

당신이 성공의와 함께 할 때 반환 같은 방법으로'HTTP 404' 세트를 게다가? – zerkms

+0

마지막 질문에 무슨 일이 일어 났습니까? 내가 답변을 게시하려고했던 것처럼 삭제 한 것과 마찬가지입니까? - 포함 된 링크가 객체를 식별 할 수있는 아무 것도 게시하지 않았기 때문에 문제를 완전히 해결하지 못했다는 점에 유의하십시오! –

+0

죄송합니다. @StephenMuecke 방금 질문을 삭제했습니다. 나는 당신이 내 질문을 더 쉽게 이해할 수 있도록 새로운 질문을 할 것이다. 잠시만 기다려주세요. –

답변

2

를 결합 할 요구 결과가있다)는 결코 null가되지 않습니다.

당신은이 같은 접근 시도 할 수 있습니다 :

C#을

[HttpGet] 
public ActionResult GetDetailPG(string pgId) 
{ 
    PGProfileViewModel pgProfileModel = new PGProfileViewModel(); 
    pgProfileModel.PGId = pgId; 
    var query = _pgProfileService.GetPGProfileById(pgProfileModel.PGId); 
    var model = query.ToViewModel(); 

    if (model == null) 
    { 
    return Json({ 
     isValid: false, 
     error: "Your error message" 
    }, JsonRequestBehavior.AllowGet); 
    } 
    else 
    { 
    model.LastName = query.LastName.Trim(); 
    model.FisrtName = query.FisrtName.Trim(); 
    model.ShiffId = query.ShiffId; 

    return Json({ 
     model: model, 
     isValid: true 
     }, JsonRequestBehavior.AllowGet); 
    } 
} 

JS

//success function of your ajax request. 
success: function (data) { 
    if (data.isValid) { 
    $("#FullName").text(data.FisrtName + " " + data.LastName) 
    $('.Shiff[value="' + data.ShiffId + '"]').prop('checked', true) 
    } 
    else { 
    alert(data.error); 
    } 
} 
+0

원래 사용자가 컨트롤러에서 오류 메시지를 보내려는 자신의 게시물에 대한 주석을 기반으로합니다. json else 문에서 사용할 수있는 json 객체에 추가 오류 메시지 속성을 포함하도록 코드를 업데이트해야합니다. – wigs

+0

@wigs 당신이 옳습니다, 코드가 업데이트되었습니다. 감사! – ianaya89

+0

@ ianaya89 감사합니다. –

관련 문제