2011-03-08 6 views
1

내가 코드를 사용하여 ASP.NET 방법에 몇 가지 매개 변수를 보내요청에서 Json을 얻는 방법?

$.ajax({ 
     url: "/default.aspx/test.test", 
     type: "POST", 
     data: "{'parameter':'kapdbe'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (result) { 
      alert(result.d); 
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      alert("Error"); 
     } 
    }); 

을 그리고 어떻게 HttpContext.Request에서 전송 된 데이터를 얻을 수 있습니까? 미리 감사드립니다.

+0

: 좀 더 쉽게 ASP.NET MVC 2/3인가 년대' success()'콜백? – Orbling

+0

@Orbling : 그는 서버에서 요청 데이터를 가져 오려고합니다. – SLaks

답변

4

Request.InputStream의 원시 데이터를 StreamReader을 사용하여 문자열로 읽은 다음 문자열에서 JSON을 구문 분석해야합니다.

페이지 메서드를 사용하는 경우 들어오는 JSON과 일치하는 속성을 사용하여 [Serializable] 클래스를 매개 변수로 사용하도록 페이지 메서드를 간단히 수정할 수 있습니다.

+0

감사합니다. @SLaks. 내 문제는 이제 컨텍스트를 사용하고 싶습니다. 세션. IRequiresSessionState 인터페이스를 사용하여 클래스를 표시했지만 Session [ "xyz"]을 값으로 설정하면 두 번째 시간은 null입니다. 이 원인은 무엇입니까? – Zoliqa

2

당신은 내가 ASP.NET 웹폼 권리를 추측하고있어, 그래서

url: "/default.aspx/test.test" 

을 썼다?

이 질문 태그에서이 정보를 넣어 항상 좋은, 그래서 우리는 더 나은 당신을 도울 수 있고, 그래서 빨리

, 당신이 수행해야하는

url: "/json/test.ashx" 

을 그리고 만들 일반 처리기 (처리 할 ASP.NET 페이지 수명주기가 모두 필요하지 않으므로 훨씬 빨라집니다.)

코드는있을 것입니다 :

<%@ WebHandler Language="C#" Class="Handler" %> 

using System.Web; 

public class Handler : IHttpHandler { 

    public void ProcessRequest (HttpContext context) { 

     // Get your variable 
     string param = context.Request["parameter"]; 

     // Do something with it  
     MyObject output = DoSomethingWithPAram(param); 

     // Use Json.NET to get a nice JSON string 
     string json = Newtonsoft.Json.JsonConvert.SerializeObject(output); 

     // Output new stuff 
     context.Response.ContentType = "text/plain"; 
     context.Response.Write(json); 
    } 

    public bool IsReusable { 
     get { 
      return false; 
     } 
    }  
} 

는 희망이 도움이 ... 그것의 경우는 내 result``에 있지

+1

+1 좋은 답변입니다. MVC에 대한 의견을 +1하기를 바랍니다. (정말 쉽습니다). – JasCav

관련 문제