2014-04-30 4 views
3

두 개의 System.Drawing.Point 구조체를 내 컨트롤러에 전달하려고합니다. 단순히 위치를 얻으려는 평범한 객체를 만드는 것이 가능하지만 내장 된 구조체를 사용하여 동일한 작업을 수행 할 수 있다면 나는 골똘히 생각했습니다.System.Drawing.Point를 MVC 컨트롤러에 전달

나는이 서명을 모든 중단 점을 칠 수 없었다 :

public async Task<ActionResult> DoSomething(Point pt1, Point pt2) 

public async Task<ActionResult> DoSomething(Point pt) 

을 나는 이 서명 중단 점, 이와

public async Task<ActionResult> DoSomething(Point[] pts) 

을 명중했다 요청 :

$.ajax({ 
      type: 'GET', 
      url: 'http://localhost:37260/TestController/DoSomething', 
      dataType: 'application/json', 
      success: function (myData) { }, 
      data: [{X: 5, Y: 6}, {X: 7, Y: 9}], 
      async: false 
     }); 

포인트는 null입니다. 나도 다른 것들을 시도했다. jQuery와 JSON을 사용하고 있지만 필수 조건은 아닙니다. 또한 POST 또는 GET 요청 일 수 있습니다.

답변

1

DoSomething(Point pt) 대신 DoSomething(int x, int y)을 사용하십시오. 포인트는 .net 시스템 객체입니다. 따라서 int 매개 변수를 사용하고 해당 블록에서 새 Point (x, y) 객체를 정의합니다.

+0

제안에 대한 +1하지만 가능하다면 (또는 불가능) 내장 .NET 구조체, System.Drawing.Point를 MVC 컨트롤러에 전달할 수 있는지 알아 내려고합니다. 예를 찾을 수 없기 때문입니다. 그것을 사용합니다. –

+0

예 가능하지만 jQuery가 .net 시스템 오브젝트를 인식하지 못하기 때문에 jQuery에서 조치를 호출하지 않습니다. jQuery를 사용하여 호출 작업을 직접 처리하면 가능합니다. –

+0

그렇지 않으면 나만의 수업을 만드십시오. –

관련 문제