ASP.NET MVC+Bootstrap 을 이용 하여 개인 블 로그 의 복구 UEditor 편집 시 Bug(4)

제 개인 블 로 그 는 바 이 두 부 텍스트 편집기 UEditor 를 사용 하여 글 을 수정 할 때 문제 가 생 겼 습 니 다.(bug 인지 제 가 설정 하지 않 았 는 지 모 르 겠 습 니 다.)하지만 드디어 해결책 을 찾 아 기록 했다.
작은 사이트 의 첫 번 째 글 목록 은(HTML 탭 제거 후 600 글자 이전 표시):구체 적 으로www.zynblog.com

질문
일반적으로 글 수정 페이지 에 들 어가 면 UEditor 에 대응 하 는 textarea 의 value 를 글 Content 로 설정 하면 됩 니 다.$('\#editor').val('@Html.Raw(this.Model.contents)');
처음에 나 는 이렇게 했다.모든 것 이 정상 이 었 다.내 가 배경 에서 글 을 편집 할 때 까지'코드'(
(**code****
)형식의 html 를 삽입 했다!그래서 다시 배경 에서'편집'->편집 페이지 로 넘 어 갈 때,

UEditor 완전 안 나 와!!
원문 주 소 는http://www.zynblog.com/Archives/Index/2
js 가 잘못 되 었 을 것 으로 예상 되 어 UEditor 렌 더 링 과정 이 잘못 되 었 습 니 다.좋아,디 버 깅 후에 이 걸 발 견 했 어.
글 의 코드 는
형식
\#include  로 표 시 됩 니 다.<stdio.h>int main(){
    printf("hello world!");
    return 0;
}
주의 하 세 요.안의 줄 바 꿈 은 줄 바 꿈 의 텍스트 표시 입 니 다.그러면 프론트 데스크 의 코드 는 다음 과 같이 해 석 됩 니 다.

우 리 는 js 에서 줄 을 바 꾸 는 것 을 알 고 있 습 니 다.기본 값 은 새로운 문장의 시작 입 니 다.위의 코드 의 첫 번 째 줄 인 inital Content 는 js 문자열 이지 만 왼쪽 따옴표'(pre>앞)만 있 고 오른쪽 따옴표'''가 부족 합 니 다.이때 js 는 이것 이 무엇 인지 몰 랐 다.그 는 흩 어 진 오른쪽 따옴표 를 찾 지 못 했다.so 클 라 이언 트 도 계속 실행 되 지 않 습 니 다.textarea 의 UEditor 효 과 는 자 연 스 럽 게 나타 나 지 않 습 니 다.
해결 방안:
예,UEditor 초기 화 에 완전한 js 문자열 이 필요 하 다 면 글 내용 을 json 으로 정렬 하고 억 지 스 러 운 UEditor 에 값 을 부여 하면 됩 니 다.
물론 또 하나의 문 제 는 C\#에서 jss.Serialize()는 하나의 줄 을 바 꾸 는 것 으로 분 석 했 고 UEditor 는\r 와 모두 줄 을 바 꾸 는 것 으로 분 석 했 습 니 다.그러면 원래 한 줄 만 바 꾸 는 것 이 두 줄 로 바 뀌 었 습 니 다.그래서 우 리 는 초기 화 되 기 전에 함수 대신 문자열 로 이 문 제 를 해결 할 수 있 습 니 다.예:
initialContent=initialContent.replace(/\\r\/g,'\');
Article.Content 를 직렬 화 할 때 중복 줄 바 꾸 기 제거:

public ActionResult EditArchive(int id)
{
Article article = articleService.GetEntity(id);
//json      
; UEditor \r
。 // 。 // , js JavaScriptSerializer jss = new JavaScriptSerializer(); string json = jss.Serialize(article.Contents.Replace("\"", " '"));        // Contents C# " '; img src=“” href=“” ( ) 。 // json "" , json = json.Substring(1, json.Length - 2); // json <br>: \u003cbr/\u003e ViewData["json"] = json; *****do other things。。。。。。。。。。。。 }
textarea UEditor 에 값 을 부여 할 때:

var editor = new baidu.editor.ui.Editor({
UEDITOR_HOME_URL: '/Content_Admin/ueditor/',//       
iframeCssUrl: '/Content_Admin/ueditor/themes/iframe.css',//    
initialContent: '    ueditor',//        
autoHeightEnabled: true,//      
minFrameHeight: 500//    
});
editor.render('editor'); //render('selector')   id
editor.ready(function () {
var content = '@ViewData["json"]'; // UEditor  json
content = content.replace(/\\r\
/g, '\
'); editor.setContent(content); // body style、 " ; // C# \" ' 。 :style='width:50px' src=''; }); //UE.getEditor('editor').getContentTxt()
이렇게 되면'글 편집'을 다시 누 르 면 UEditor 가 렌 더 링 된다.But 문제 가 또 왔 다!!!이렇게 json 을 전송 하면 편집 영역(body)의 그림/파일 src=","a href=",",style="등 작은 따옴표 가 있 는 요소 가 표시 되 지 않 습 니 다!디 버 깅 을 계속 하 세 요.한참 동안 찾 아 보 니 문제 가 있 습 니 다.배경 에서 글 을 데이터베이스 에서 꺼 낸 후에 C\#는 Content 속성 문자열 의 모든","/등 을 자동 으로 바 꿉 니 다.이후 JSON 을 직렬 화 할 때/",//를 전의 하여'이중 전의'를 초래 하기 때문에 모든'띠'요소 와 그 속성 에 오류 가 표 시 됩 니 다.솔 루 션:배경 이 정렬 되 기 전에 1 층 의 전 의 를 수 동 으로 제거 하면 됩 니 다.

string json = jss.Serialize(article.Contents.Replace("\"", " '")); 
정상 으로 보이 기:

위 에서 말 한 것 은 편집장 이 소개 한 ASP.NET MVC+Bootstrap 을 이용 하여 개인 블 로 그 를 만 드 는 UEditor 편집 시 Bug(4)입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기