2012-05-09 2 views
0

List 및 Json 데이터를 웹 페이지로 반환해야하는 보고서를 작성하고 있습니다. 멀티 티어 애플리케이션으로 작업하고 있습니다. 웹 프로젝트는 MVC를 사용하여 만들어 지지만 무거운 작업은 별도의 프로젝트로 클래스 라이브러리에서 수행됩니다.C# 클래스 라이브러리에서 Json 데이터를 반환 할 수 있습니다.

보고서 개체를 클래스 라이브러리에서 내 컨트롤러로 반환하지만 모델에서 Lists와 Json을 함께 사용할 수 있는지 알고 싶습니다. 이상적으로는 다음과 유사한 것으로 보고서 모델을 싶습니다

public class Report 
{ 
    public List<TopSellers> TopSellers { get; set; } 
    public List<MonthlySales> MonthlySales { get; set; } 
    public Json ShopSales { get; set; } 

} 

이 방법은 목록 물건이 정상으로 렌더링 할 수 있지만, jQuery를 내가 사용하고 그래프를 렌더링 할 JSON되는 수익을 잡을 수 .

이것이 가능합니까?

나는 이것과 비슷하게 선언하려했지만, 얻을 수있는 유일한 옵션은 'JsonReaderWriterFactory'입니다.

지금까지 Json의 노출은 null이었습니다. 누군가 나를 도와 주거나 올바른 방향으로 나를 가리킬 수 있다면 매우 감사 할 것입니다.

감사합니다.

+2

JSON은 텍스트 형식입니다. 문자열을 반환 할 수 없습니까? – Oded

+0

안녕하세요, Oded, 코멘트 주셔서 감사합니다. 나는 할 수 있었다. jQuery를 통과하기 전에 Json 형식으로 변환해야합니까? – 109221793

+0

이것은 나쁜 생각입니다. JSON은 동일한 시스템의 다른 부분 사이가 아닌 시스템 간 통신을위한 것입니다. –

답변

5

JSON.net 라이브러리를 사용하여 개체를 json 문자열로 serialize하고 ShopSales 속성으로 설정할 수 있습니다.

당신이 jQuery를 함께 ShopSales 속성을 사용할 수있는 클라이언트에서

report.OriginalList = objectToSerialize; 

var jsonStr = JsonConvert.Serialize(objectToSerialize); 
report.ShopSales = jsonStr; 

return report; 

http://json.codeplex.com/.

1

여기 참조 (그리고 나는 또한 한 번 채택하는) 유일한 방법은 JSON.net은 살펴 본다 가치가있다 (특정 요청을 가로 채어 클래스 라이브러리에 HTTP 처리기를 만드는 것입니다 직접 응답에 JSON을 기록).

HTTP 처리기 대신 build-in ASP.net routing mechanism을 직접 활용할 수 있는지 여부를 살펴볼 수도 있습니다.

그러면 클래스 라이브러리가 프론트 엔드 프로젝트 (예 : ASP.net MVC/WebForms)에 대한 참조로 명시 적으로 추가되고 거기에 핸들러가 등록되어야합니다.

관련 문제