ProgramingTip

MVC 반환 부분보기를 JSON으로

bestdevel 2020. 11. 4. 08:12
반응형

MVC 반환 부분보기를 JSON으로


MVC에서 JSON 응답의 일부로 배포 방법에서 HTML 호스트를 사용합니까?

    public ActionResult ReturnSpecialJsonIfInvalid(AwesomenessModel model)
    {
        if (ModelState.IsValid)
        {
            if(Request.IsAjaxRequest()
                return PartialView("NotEvil", model);
            return View(model)
        }
        if(Request.IsAjaxRequest())
        {
            return Json(new { error=true, message = PartialView("Evil",model)});
        }
        return View(model);
    }

이 간단한에 대한 답변과 유사하게 PartialViewResult에서 html 인터페이스를 추출 할 수 있습니다.

뷰를 공유로

PartialViewResult 및 ViewResult는 모두 ViewResultBase에서 파생되는 메소드가 둘 다에서 작동해야합니다.

위의 코드를 사용하면 다음을 사용할 수 있습니다.

public ActionResult ReturnSpecialJsonIfInvalid(AwesomenessModel model)
{
    if (ModelState.IsValid)
    {
        if(Request.IsAjaxRequest())
            return PartialView("NotEvil", model);
        return View(model)
    }
    if(Request.IsAjaxRequest())
    {
        return Json(new { error = true, message = RenderViewToString(PartialView("Evil", model))});
    }
    return View(model);
}


대신에 다음 RenderViewToString과 같은 접근 방식을 선호합니다.

return Json(new { Url = Url.Action("Evil", model) });

그런 다음 자바 펼쳐보기에서 결과를 내고 다음과 같이 할 수 있습니다.

success: function(data) {
    $.post(data.Url, function(partial) { 
        $('#IdOfDivToUpdate').html(partial);
    });
}

Url.Action ( "악", 모델)

get 쿼리를 생성하지만 ajax 메소드는 post이고 오류 상태는 500 (내부 서버 오류)입니다. – Fereydoon Barikzehy 2 월 14 일 9:51

Json 객체에 "JsonRequestBehavior.AllowGet"을 추가하기 만하면됩니다.

참고 URL : https://stackoverflow.com/questions/4730777/mvc-return-partial-view-as-json

반응형