클라이언트와 서버가 동일한 json 객체에서 작동할 수 있나요? 현재 생각하는 방법은 클라이언트 측에서 컨트롤을 숨기는 것입니다.
다음은 일반 목록 객체 List
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"를 설정하세요
4. 페이지가 Page_Load 로드되면 json 데이터소스 초기화
#region 데이터 소스 로드
if (!IsPostBack)
{
List
new TrainingImplement (){
Code="aaa",
c_name ="bbb"
}
....
}// 데이터 소스 초기화
hideDataSource.Value = ConvertObjectToByteData(list);
}
else
{
//포스트백인 경우 클라이언트에서 데이터 소스를 읽습니다.
List>(hideDataSource.Value);
hideDataSource.Value = ConvertObjectToByteData(list);
}
#endregion
4. 클라이언트 js 작업 json 데이터 소스 예시
5. 서버측 C#에서는 Json 데이터 소스를 운영합니다
>(hideDataSource.Value)