2011-01-20 2 views
6

저는 ASP.NET 4.0 기반 CMS를 사용하여 하나의 텍스트 상자를 편집하기 위해 jQuery를 통해 TinyMCE (3.4)를 사용합니다.TinyMCE 및 XML 인코딩을 사용하는 ASP.Net 4.0은 다시 게시 할 때 콘텐트를 다시 인코딩합니다.

이 외에도 몇 가지 다른 텍스트 상자가 있습니다. 페이지에 ContentType을 제어하는 ​​또 다른 드롭 다운 목록이 있습니다. 이 컨트롤에는 자동 게시가 활성화되어 있으며 선택 항목과 관련하여 텍스트 상자에 대한 표시 여부를 설정합니다.

필자는 TinyXML이 콘텐츠 직렬화 (인코딩 : "xml")에 xml을 사용하도록 구성한 상태에서 포스트 백 유효성 검사를 유지하려고합니다.

이제는 문제가 발생했습니다. 예를 들어 드롭 다운 목록이 발생하면 콘텐츠를 다시 인코딩합니다.

Init: "Hallo" 
1st Postback: "<p>Hallo</p>" 
2nd Postback: "<p>&lt;p&gt;Hallo&lt;/p&gt;</p>" 

저는 CSS를 통해 원본 텍스트 영역을 활성화했으며 TinyMCS의 저장 방법에 문제가있는 것으로 보입니다. TinyMCE에서 사용자 정의 save_callback을 사용하여이 문제를 해결하는 방법에 대한 해결책이 있습니까?

+1

내 대답보기 http://stackoverflow.com/a/34100978/1201322 – Ravimallya

+0

[tinymce는 포스트 백 때 HTML 코드를 얻을 수 있습니다.] (http : // stackoverflow.com/questions/5636219/tinymce-get-html-code-when-postback) –

답변

0

entity_encoding 설정 도움말을 살펴보십시오.

+1

아니요,이 설정은 antities가 ancoded되는 방식 만 정의하고 내 문제는 ancoded가 두 번 있다는 것입니다. – Christoph

+0

흠, 그런데 솔직히이 문제는 문제가 아니라고 생각합니다. 다른 서버 측 코드와 요청/결과를 확인 했습니까? – Thariama

+0

예. 기본 텍스트 영역 (CSS를 통해)을 활성화하고 거기에 포스트 백이 TinyMCE가 이중으로 인코딩 된 html을 작성하도록합니다. 포스트 백은 코드 숨김 메소드를 호출하지 않았습니다. – Christoph

1

데이터를 저장 한 후 데이터 창에 다시로드 될 수 있습니까? I이 이전 TinyMCE에/웹폼, 그것은 쉽게 양식 필드를 채우기 전에 데이터를 디코딩하여 고정 포스트 백 이후 하였다 발생

:

TextAreaID.Text = Server.HtmlDecode ("<P> 헬로 </p > ");

1

저는 Tinymce와 Asp.NET MVC에서 비슷한 문제가있었습니다. 내 경우에는 무슨 일이 일어나고있는 것은이었다

  1. 양식을 제출하고 TinyMCE에의 HTML 콘텐츠 (필자는 encoding: 'xml' 옵션을 사용하고 있습니다) 내 서버 사이드 포스트 액션에서
  2. , 나는 내가 원하는 태그를 디코딩 HTML을 인코딩한다 허용 (단순화 된 예 : decodedHtml = model.HtmlContent.Replace("&lt;p&gt;", "<p>")). 그런 다음 데이터베이스 등을 저장 한 후, 나는

하지만 (model.HtmlContent = decodedHtml)이 시점에서 TinyMCE에 편집기가 내가 한에도 불구하고, 즉, 대신 <p>test</p>&lt;p&gt;test&lt;/p&gt;을 인코딩 된 HTML을 보여주는 된 디코딩 된 HTML을 model.HtmlContent를 업데이트 내 게시물 작업에 model.HtmlContent = decodedHtml. asp.net은 포스트 백 모델의 값을 무시하고 대신 게시 된 값을 바인드합니다 (이 방법에 대한 자세한 내용은 http://weblog.west-wind.com/posts/2012/Apr/20/ASPNET-MVC-Postbacks-and-HtmlHelper-Controls-ignoring-Model-Changes 참조). 이 약

방법이

ModelState.Remove("HtmlContent"); 

을 할 수 귀하의 게시물 행동이며, 그것은보기 모델 대신에 게시 된 값에 값을 바인딩합니다.

그래서 내 경우에는 문제가 실제로 tinymce 함께 아니었지만 양식 포스트 asp.net mvc 작동 방식으로. 희망이 사람을 도움이됩니다.

관련 문제