programing

기본 단순 Asp.net + jQuery + JSON 예제

lastmoon 2023. 8. 10. 19:09
반응형

기본 단순 Asp.net + jQuery + JSON 예제

자바스크립트/jQuery에서 서버로 간단한 통화를 하는 방법을 배우려고 합니다.저는 배우려고 노력했지만 그 간단한 절차로는 튜토리얼을 찾을 수 없었습니다.

두 가지 매개 변수(DateTime 및 String)로 서버에 메시지를 보내고 DateTime을 반환받고 싶습니다.저는 JSON으로 하고 싶습니다.

  • 서버의 코드는 어떻게 표시됩니까(구조만)?
  • 제가 서버 쪽에서 특별히 해야 할 일이 있나요?보안은 어떻습니까?
  • jQuery에서 호출을 구현하려면 어떻게 해야 합니까?
  • 그리고 그 결과를 어떻게 처리해야 할까요?

저는 코드 구조에 가장 관심이 있습니다.

갱신하다

저는 아래의 답변이 저를 시작하기에 아주 좋다는 것을 알았습니다.하지만 최근에 Full ASP를 우연히 발견했습니다.NET, LINQ, jQuery, JSON, Ajax 튜토리얼.이것은 환상적이고 매우 교훈적인 단계적인 것입니다. 미래에 이 질문을 마주치는 다른 사람들과 공유하고 싶습니다.

이 작업을 수행할 수 있는 몇 가지 방법이 있습니다. 단 하나의 예가 됩니다.

jQuery 코드에 대해 다음과 같은 내용을 작성할 수 있습니다.

urlToHandler = 'handler.ashx';
jsonData = '{ "dateStamp":"2010/01/01", "stringParam": "hello" }';
$.ajax({
                url: urlToHandler,
                data: jsonData,
                dataType: 'json',
                type: 'POST',
                contentType: 'application/json',
                success: function(data) {                        
                    setAutocompleteData(data.responseDateTime);
                },
                error: function(data, status, jqXHR) {                        
                    alert('There was an error.');
                }
            }); // end $.ajax

그런 다음 ASP.net 프로젝트에서 "스캐너 핸들러"를 만들어야 합니다.일반 핸들러에서 다음을 사용합니다.Request.Formjson으로 전달된 값을 읽습니다.제네릭 핸들러의 코드는 다음과 같습니다.

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class handler : IHttpHandler , System.Web.SessionState.IReadOnlySessionState
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "application/json";

        DateTime dateStamp = DateTime.Parse((string)Request.Form["dateStamp"]);
        string stringParam = (string)Request.Form["stringParam"];

        // Your logic here

        string json = "{ \"responseDateTime\": \"hello hello there!\" }";
        context.Response.Write(json);    
    }

어떻게 되는지 보세요.그것은 여러분을 시작하게 해줄 것입니다!

업데이트: CodeReview StackExchange에 이 코드를 게시했습니다. https://codereview.stackexchange.com/questions/3208/basic-simple-asp-net-jquery-json-example

jQuery를 사용하는 경우 GET 또는 POST를 사용할 수 있습니다.

$.get ('<url to the service>',
       { dateParam: date, stringParam: 'teststring' },
       function(data) {
          // your JSON is in data
       }
);

$.post ('<url to the service>',
       { dateParam: date, stringParam: 'teststring' },
       function(data) {
          // your JSON is in data
       }
);

의 매개 변수 이름(예: dateParam, stringParam)은 서비스 메서드에서 예상하는 매개 변수 이름과 같아야 합니다.또한 서비스가 결과를 JSON으로 포맷해야 하므로 콜백의 데이터 매개 변수에는 서비스가 반환하는 모든 항목(예: 텍스트, xml, json 등)이 포함됩니다.

$.165, $.get, $.post에 대한 jQuery 문서를 참조하십시오. http://api.jquery.com/jQuery.ajax/, http://api.jquery.com/jQuery.get/, http://api.jquery.com/jQuery.post/

여기서 jquery ajax 호출을 사용하는 샘플 코드와 서버측 웹 메서드는 jSon 형식 데이터를 반환합니다.질문:

$(‘#myButton’).on(‘click’,function(){
    var aData= [];
     aData[0] = “2010”; 
     aData[0]=””    
     var jsonData = JSON.stringify({ aData:aData});
       $.ajax({
                type: "POST",
                url: "Ajax_function/myfunction.asmx/getListOfCars",  //getListOfCars is my webmethod 
                data: jsonData,
                contentType: "application/json; charset=utf-8",
                dataType: "json", // dataType is json format
                success: OnSuccess,
                error: OnErrorCall
            });
   
function OnSuccess(response.d)) {
console.log(response.d)
}
function OnErrorCall(response)) { console.log(error); }
});

코드백 : Json 형식 데이터(즉, 자동차 목록)를 반환하는 웹 메서드입니다.

[webmethod]
public List<Cars> getListOfCars(list<string> aData) 
{
    SqlDataReader dr;
    List<Cars> carList = new List<Cars>();
         
         using (SqlConnection con = new SqlConnection(cn.ConnectionString))
         {
            using (SqlCommand cmd = new SqlCommand())
            {
               cmd.CommandText = "spGetCars";
               cmd.CommandType = CommandType.StoredProcedure;
               cmd.Connection = con;
               cmd.Parameters.AddWithValue("@makeYear", aData[0]);
               con.Open();
               dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
               if (dr.HasRows)
               {
                  while (dr.Read())
                   {    
                       string carname=dr[“carName”].toString();
           string carrating=dr[“carRating”].toString();
            string makingyear=dr[“carYear”].toString();
           carList .Add(new Cars{carName=carname,carRating=carrating,carYear=makingyear}); 
        }
                }
            }
          }
        return carList 
        }

//클래스 만들기

Public class Cars {
public string carName;
public string carRating;
public string carYear;
}

언급URL : https://stackoverflow.com/questions/5756147/basic-simple-asp-net-jquery-json-example

반응형