2012-06-22 3 views
0

asp.net mvc 뷰에서 일부 javascript/jquery를 사용하고 HTML 도우미를 사용하여 일부 html 코드를 추가하고 있습니다.자동 생성 된 HTML을 문자열로 변환

$("#update").append('@Html.CustomHelper(m => m.Values)'); 

사용자 정의 html 도우미는 몇 줄의 html 블록을 생성합니다. 문제는 첫 번째 줄이 '으로 시작하고 마지막 줄이 '으로 끝나지만 나머지 줄은 문자열이 아닙니다.

자바 스크립트 또는 stringify에 jQuery를의 방법은 HTML의 블록이 있습니까?

답변

1

더 나은 방법은 ASP.NET 측에서 Javascript 용 문자열을 인코딩하는 것입니다. 어쩌면 사용 :

HttpUtility.JavaScriptStringEncode(string) 

당신이 등을 따옴표에 대한 걱정없이 일관되고 올바른 인코딩을 보장하는이 방법은 .. 그냥 방법에 문자열을 대체합니다.

+1

좋은 하나, 나는 CustomHelper를 호출하고 지금 javascript로 인코딩 된 html을 반환하는 RawCustomHelper를 만들었습니다. –

+0

도움이 된 것을 기쁘게 생각합니다. :) – Cranio

0

왜 큰 따옴표를 사용하지 않으시겠습니까?

$("#update").append("@Html.CustomHelper(m => m.Values)"); 
+0

따옴표 또는 아포스트로피를 사용할 수 있습니다. –

1

CustomHelper 메서드가 올바르게 JS 인코딩 된 인코딩 된 문자열을 반환하도록 할 수 있습니다. 메서드 호출에서 돌아 오기 바로 전에 HttpUtility.JavaScriptStringEncode(yourStringHere)을 사용할 수 있습니다. 내 예를 들어 모두를 사용하는 말은하지 않았지만

1

당신은 문제가 여기에없는 Html.Raw

$("#update").append("@Html.Raw(Html.CustomHelper(m => m.Values))"); 
+0

좋은 해결책이지만 RawCustomHelper를 만드는 것이 조금 더 깔끔하다고 느꼈습니다. –

관련 문제