2010-08-19 4 views
1

다음 코드를 사용하여 ajax 호출을 만들고 있습니다. 내가 데이터를 검색해야하는 방법 EditAjax 액션에서 asp.net mvc에서 jquery를 사용하여 AJAX 호출

$.ajax( 
    { 
     url: '/BuildingCompany/EditAjax/' + id, 
     cache: false, 
     type: 'POST', 
     data: ({ imageValue: $(this).attr("src") }), 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json' 
} 

이 아약스 호출에 의해 전송합니다.

답변

0
[HttpPost] 
public JsonResult EditAjax(string companyName, string imageValue) { 
    // do stuff here 


    return Json(object); 
} 
2

일단 ajax 양식이 제출되면 ASP.NET MVC 모델 바인더는 POST 매개 변수 "imageValue"를 조치 메소드 매개 변수와 일치시킵니다.

당신의 경로가 제대로 설정되어 가정 아래 작업을해야합니다 :

public class HomeController { 
    [HttpPost] 
    public ActionResult EditAjax(string companyName, string imageValue) { 
     //companyName == "BuildingCompany" 
     //imageValue == "The Image source" 
    } 
} 

경로 설정이 모양은 다음과 같습니다

routes.Add(new Route("{companyName}/{action}", 
    new RouteValueDictionary { { "controller", "Home" } }, 
    new UIRouting())); 
0

당신이 AJAX를 사용한다면 이고르의 솔루션이 작동 것이다 정상적으로 양식을 보내지 만 추가 단계가 필요하므로 JSON을 보내야합니다.

MVC 선물 라이브러리 (CodePlex에서 사용 가능)에는 JSONValueProvider가 있습니다. 라이브러리를 다운로드하고 Microsoft.Web.Mvc를 참조하십시오. 이렇게하면 보통 때와 같이 JSON에 대한 귀하의 액션 메소드 모델의 결합을하게됩니다

ValueProviderFactories.Factories.Add(new Microsoft.Web.Mvc.JsonValueProviderFactory());

: 당신의 Global.asax.cs 위해 Application_Start() 메소드에서

라인을 추가합니다. 당신은 이미 알고 있습니다하지만 당신은 JSON을 사용하는 당신은 JSON에 개체에는 직렬화합니다

Json(object)

이 당신을 위해 올바른 콘텐츠 유형 등을 보낼 반환 할 수 있습니다.

관련 문제