2008-11-12 14 views

Trả lời

3

Chuyển đổi JSON thành các lớp .NET có thể được thực hiện với System.Runtime.SerializationSystem.Runtime.Serialization.JSON. Tôi nghi ngờ bạn quan tâm nhiều hơn trong việc thiết lập các cuộc gọi chức năng từ máy khách đến máy chủ. Tôi nghĩ rằng nó là giá trị cố gắng this tutorial.

Trong hướng dẫn này, bạn cần phải thêm tệp '.asmx' webservice. Trong tệp asmx, bạn sẽ có thể tạo các hàm có thể gọi từ tập lệnh khách. ASP.NET trang của bạn cũng có thể tham khảo kịch bản khách hàng tạo ra để thực hiện cuộc gọi các chức năng .asmx.

Nếu bạn thực sự muốn làm JSON serialization tuy nhiên, bạn cũng có thể sử dụng như sau:

using System.Runtime.Serialization; 
using System.Runtime.Serialization.Json; 

public class JsonSerializer 
{ 
    // To make a type serializeable, mark it with DataContractAttribute 
    // To make a member of such types serializeable, mark them with DataMemberAttribute 
    // All types marked for serialization then need to be passed to JsonSerialize as 
    // parameter 'types' 

    static public string JsonSerialize(object objectToSerialize, params Type[] types) 
    { 
     DataContractJsonSerializer serializer = new DataContractJsonSerializer(
      types[0], types.Skip(1)); 

     MemoryStream ms = new MemoryStream(); 
     serializer.WriteObject(ms, objectToSerialize); 
     ms.Seek(0, SeekOrigin.Begin); 
     StreamReader sr = new StreamReader(ms); 
     return sr.ReadToEnd(); 
    } 
} 
3

Sau đây bài viết Extending an existing ASP.NET Web Service to support JSON bởi Bobby Soares vào cuộc đàm phán codproject.com về việc sử dụng phương pháp tùy chỉnh các thuộc tính để đạt được kết quả mong muốn.

+0

Bobby Saores article trông hoàn hảo. Tôi giong để cố gắng thực hiện nó vì có vẻ như nó sẽ hỗ trợ dự án của tôi. – htm11h

0

Tôi đã sử dụng ASP.Net Ajax một lúc, nhưng không bao giờ phải lo lắng về giao tiếp JSON hoặc XML. Thay vào đó, tôi đã sử dụng các dịch vụ Web để trả về trực tiếp nội dung mà bạn có thể thiết lập bằng cách sử dụng innerHTML.

Điều này rất dễ thực hiện. Chỉ cần tạo một tệp dịch vụ web (ASMX) và khai báo các phương thức của bạn dưới dạng WebMethods (đặt thuộc tính WebMethod).

Bây giờ bạn có thể gọi dịch vụ web của bạn từ mã Javascript của bạn khá giống với chức năng thông thường.

Kết quả của hàm sẽ được trả về chức năng gọi lại. Đây là cấu trúc

//Webmethod returns some HTML content 
Myservice.DoSomething(myParam, callBackFunction); 

//Content is set on the webpage 
function callBackFunction(result){ 
    document.getElementById('myElemID').innerHTML = result; 
} 
+0

lý do tại sao không chỉ sử dụng bảng cập nhật nếu bạn sẽ có chi phí chuyển html xuống dây thay vì một đối tượng json nhẹ? Ý tưởng của json là để giữ cho k xuống dây đến mức tối thiểu do đó có phản ứng nhanh chóng của ban nhạc – redsquare

Các vấn đề liên quan