2016-07-20 2 views
1

저는 mvc5로 작업하고 있습니다. 이미지를 클라우드에 업로드하고 이벤트를 호출하는 위젯을 사용합니다. 성공하면 데이터베이스에 정보를 써야합니다. 코드의 첫 번째 줄에있는 데이터입니다.요청에서 POST 데이터를 얻는 방법 asp mvc 5

$(document).on('cloudinarywidgetsuccess', function (e, data /*this data I need in database*/) { 
    $.ajax({ 
     url: "/Cabinet/UploadImageCallback", 
     type: "POST", 
     data: data, 
     success: function (data) { 
      if (data.status == "success") { 
       console.log(data); 
      } else { 
       console.log("db error"); 
       console.log(data); 
      } 
     }, 
     error: function (data) { 
      console.log("An error has occured!!!"); 
      console.log(data); 
     } 
    }); 
}); 

컨트롤러의 데이터를 json 형식으로 가져 오려고합니다. 이런 식으로 .php로 보내면이 방법으로 데이터에 액세스 할 수 있습니다. $_POST['KEY']. MVC5에서 비슷한 기능을 얻는 방법?

+0

'데이터'는 어떻게 보이나요? – Shyju

+0

@Shyju json 배열 – Nikita

+1

구조체는 무엇입니까? 동일한 구조로 클래스를 만들고이를 param으로 사용하십시오. 데이터가 게시되면 모델 바인더는 게시 된 데이터를 해당 클래스의 개체에 매핑하고 액세스 할 수 있습니다. – Shyju

답변

1

매개 변수로 모델을 사용할 수 있습니다. 대부분의 경우 ASP.Net MVC의 기본 ModelBinder는 모델에 매핑 할 수 있습니다.

$.ajax({ 
    url: "@Url.Action("UploadImageCallback", "Cabinet")", // If you want strongly-typed URL 
    contentType: "application/json; charset=utf-8", 
    method: "POST", 
    data: JSON.stringify(data) 
    ... 
}); 

public class CustomerModel 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

[HttpPost] 
public ActionResult UploadImageCallback(CustomerModel model) 
{ 
    // Do something 
} 
+0

모델 바인더에 대해 읽었습니다. 그래서 몇몇 필드가 필요하다면 다음 액션을 작성할 수 있습니다 :'public ActionResult UploadImageCallback (string field1, string field3)'. 모델 바인더는 사용 가능한 데이터 소스 (POST, GET, SESSION - 중요하지 않음)의 조치 매개 변수와 동일한 이름의 json 변수를 자동으로 검색합니다. 같은 이름이 첫 번째이고 두 번째 바인더는 문자열 값을 매개 변수 유형으로 변환하려고 시도합니다. 두 조건이 모두 참이면 바인더가 값을 작업으로 보냅니다. – Nikita

관련 문제