>  기사  >  웹 프론트엔드  >  동일한 json object_javascript 기술을 작동하기 위한 C# 및 Javascript용 구현 코드

동일한 json object_javascript 기술을 작동하기 위한 C# 및 Javascript용 구현 코드

WBOY
WBOY원래의
2016-05-16 17:57:00851검색

클라이언트와 서버가 동일한 json 객체에서 작동할 수 있나요? 현재 생각하는 방법은 클라이언트 측에서 컨트롤을 숨기는 것입니다.
다음은 일반 목록 객체 List입니다. json으로 변환된 후 클라이언트와 서버는 어떻게 작동하나요?
1. json 객체와 C# 제네릭 간의 변환 코드

코드 복사 코드는 다음과 같습니다.

//json 데이터를 제네릭으로 변환
public static T ConvertByteDataToObject{
T obj;
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(byteData)))
{
var serializer = new DataContractJsonSerializer(typeof (T) );
obj = (T)serializer.ReadObject(ms)
}
return obj;
}
//제네릭을 json으로 변환
공개 정적 문자열 ConvertObjectToByteData< ; T>(T obj)
{
string result;
using (var ms = new MemoryStream())
{
var serializer = new DataContractJsonSerializer(typeof(T)); 🎜 >serializer.WriteObject(ms, obj);
ms.Position = 0;
result = Encoding.UTF8.GetString(ms.ToArray())
}
결과 반환 > }


2. json 데이터 소스는 클라이언트 숨겨진 컨트롤




3. json 데이터 배치 후 제어하세요. "/"를 포함하면 요청 요청에 오류가 발생하므로 페이지 헤더에 ValidateRequest="false"를 설정하세요


<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true"


4. 페이지가 Page_Load 로드되면 json 데이터소스 초기화


protected void Page_Load(객체 전송자, EventArgs e)
{
#region 데이터 소스 로드
if (!IsPostBack)
{
List new List (){
new TrainingImplement (){
Code="aaa",
c_name ="bbb"
}
....
}// 데이터 소스 초기화
hideDataSource.Value = ConvertObjectToByteData(list);
}
else
{
//포스트백인 경우 클라이언트에서 데이터 소스를 읽습니다.
List list = ConvertByteDataToObject>(hideDataSource.Value);
hideDataSource.Value = ConvertObjectToByteData(list);
}
#endregion


4. 클라이언트 js 작업 json 데이터 소스 예시






5. 서버측 C#에서는 Json 데이터 소스를 운영합니다


코드 복사 코드는 다음과 같습니다. List< ;TrainingImplement> list = ConvertByteDataToObject>(hideDataSource.Value)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.