2012-09-20 3 views
1

여기 내 동작이 있습니다.asp.net mvc3, JsonResult에 의해 반환 된 값을 얻는 방법

public virtual JsonResult AddSearch() 
    { 
     var data = new { Id = food.Id, Image = food.Image, Name = food.Name}; 

     return Json(data, JsonRequestBehavior.AllowGet); 
    } 

여기 내 아약스 양식

@using (Ajax.BeginForm("AddSearch", "Home", new AjaxOptions { OnSuccess = "AddSearch" })) 

내 자바 스크립트 파일입니다.

function AddSearch() { 
     alert("sdfsdfsdf"); 
    } 

경고 표시가 나타납니다. 내 질문은 "ID", "이름"및 "이미지"JsonResult에 의해 반환 된 얻을 수있는 방법입니다. 시도 :

 alert("sdfsdfsdf"); 

작동하지 않습니다.

답변

1

MVC (정확히 unobtrusiveAjax 도우미)는 OnSuccess 메서드에 jQuery.ajaxsuccess(data, textStatus, jqXHR) 콜백 인수를 전달합니다.

그래서 당신이 당신 AddSearch 메서드에 매개 변수를 추가해야합니다

function AddSearch(data, status, xhr) { 
     // you can access your properties from data 
     alert(data.Name); 
} 
+0

예, 솔루션이 작동하며, 여기에도 답변을 찾았습니다. http://stackoverflow.com/questions/4539853/asp-net-mvc3-bug-using-javascript – qinking126

0

이것은 내가 한 것입니다 ... 내 모델의 목록에 액세스하여 자바 스크립트의 JSON으로 변환했습니다.

var JsonServerList = <%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(@Model.ServerList) %>; 

이제 ServerList [i] .servername을 말하면 값을 얻습니다. 컨트롤러에서

:

0

당신은 이런 식으로 뭔가를 시도 할 수 있습니다

public virtual JsonResult AddSearch() 
{ 
    var data = new { Id = food.Id, Image = food.Image, Name = food.Name}; 

    return Json(data, JsonRequestBehavior.AllowGet); 
} 

를 자바 스크립트 섹션보기/년 :

function AddSearch() { 

    $.getJSON("@url.Action(here_goes_your_actionname)", { parameters }, function (data) { 

     alert(data); 

    }); 
} 

희망이 도움이됩니다.

0

"UpdateTargetId"AjaxOption의 또 하나 개의 특성이 응답이 곳을 추가합니다. 당신이 결과를 당신의 컨트롤러

public Actionresult AddSearch() 
{ 
    var data = new { Id = food.Id, Image = food.Image, Name = food.Name}; 

    return data; 
} 

에서

<div id="tagetId"> 
</div> 

    @using (Ajax.BeginForm("AddSearch", "Home", new AjaxOptions { OnSuccess = "AddSearch", UpdateTargetId = "tagetId" })) 
    { 

    } 

처럼보기 "targertId"에 추가됩니다.

관련 문제