2014-11-02 3 views
0

저는 웹 프로그래밍과 asp.net mvc4에서 더 최신 버전입니다. 아마도 제 질문은 당신에게 순진 해 보일 것입니다. @ViewBag의 도움으로 JSON을 전달하고 있습니다.면도 페이지에서 JSON으로 인코딩 된 인용 부호가 표시되는 이유는 무엇입니까?

ViewBag.Json = new JavaScriptSerializer().Serialize(contacts); 

Evrething이 행에 대해, 내 질문에 잘 작동 :

여기
var strJson = '@ViewBag.Json'; 
var strDecoded = strJson.replace(/"/g, '"'); 
var JSONParsed = strDecoded.parse(); 

JSON을 만들어 내 컨트롤러 클래스의 행은 다음과 같습니다

나는이 행을 사용하여 면도기보기 페이지에서 JSON을 구문 분석 :

strJson.replace(/"/g, '"'); 

면도기 뷰 페이지에 JSON을 보내기 전에 코드화되지 않은 인용 부호가 표시됩니다 ().하지만 JSON의 면도기보기 페이지에서 인용 부호가 인코딩 된 것을 볼 수 있습니다 (").

면도기 뷰 페이지에서 JSON으로 인코딩 된 인용문을 가져 오는 이유는 무엇입니까?

미리 감사드립니다.

답변

2

면도기는 출력 한 모든 텍스트를 자동으로 HTML 인코딩합니다.
Html.Raw()을 호출하여이를 방지 할 수 있습니다.

또한 JSON은 이미 유효한 Javascript입니다. 문자열을 파싱 할 필요가 없습니다.

var jsonParsed = @Html.Raw(ViewBag.Json); 
관련 문제