2014-11-24 8 views
-1

우리 회사는 기존 Telerik 패키지 중 하나에 대한 라이센스를 보유하고 있습니다. 그들은 우리 스크린 중 하나에 일반 텍스트 상자 대신 RTF 텍스트 상자를 놓기를 원합니다. 필자는 텍스트 상자에 대한 현존하는 코드를 가지고 있으며 RTF 편집기와 함께 작동하는 다른 응용 프로그램에서 사용되는 또 다른 페이지가 있습니다 (이것은 내 권한 수준에서 액세스 할 수없는 기능의 일부입니다).이전 Telerik RTF/HTML 편집기 사용

다음과
@Html.TextAreaFor(m => m.LogEntry.Description, 
    new { @id = "logDescription", @class = "dirtyField", 
      style = "width: 400px; height: 100px;" }) 

내가 오프의 내 코드를 패터닝하고있어 RTF 코드가 될 때 :

@(Html.Telerik().EditorFor(m => m.MessageContent) 
    .Name("msgEditor") 
    .HtmlAttributes(new { style = "width: 600px; height:250px; padding-top:0px; padding-bottom:0px;" }) 
    .Tools(tools => tools 
    .Clear() 
    .Bold().Italic().Underline().Strikethrough() 
    .JustifyLeft().JustifyCenter().JustifyRight().JustifyFull() 
    .InsertUnorderedList().InsertOrderedList() 
    .Outdent().Indent() 
    .CreateLink().Unlink() 
    .Subscript() 
    .Superscript() 
    .FontName() 
    .FontSize() 
    .FontColor().BackColor() 
    ) 
) 

내가 표시하는 편집기 제어 할 수 있습니다, 대신 우리 LogEntry.Description 문자열을 사용하여 다음과 같이 원래의 코드였다 위 MessageContent의 텍스트를 입력 할 수 있습니다. 텍스트를로드 할 수 있습니다. 그러나 대화 상자의 단추로 호출되는 프로 시저에서 항목을 저장하려고하면 Description 텍스트가 NULL로 설정됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 나는 웹 개발에 관해서는 초보자 다. 그래서 나는 빨대를 쥐고있다.

답변은 Telerik Editor doesn't work으로 보았지만 ScriptRegistrar를 설정했습니다. Telerik 사이트에서 찾을 수있는 자습서는 모두 Kendo 편집자 용입니다. This page은 더 적용 가능하지만, 내가 알 수있는 한, 나는 똑같은 모든 일을하고 있습니다. 나는 HTMLEncode 또는 HTMLDecode에 대한 호출을 삽입하는 데 필요한 장소가 있는지 알아 내려고했지만, 아직 값을 가져 오지 못했던 곳을 찾기 위해 NULL로 변경되었습니다. 불행히도, 회사 코드와 그 모든 것, 나는 단지 그만큼의 게시물을 올릴 수있다. 필자는 필요에 따라 위생 처리 된 세부 사항을 게시하기 위해 최선을 다할 것이다.

답변

0

앞으로이 문제가있는 사람들을 위해 게시 된 추가 코드에 액세스 할 수 있지만 소스 코드에 추가되지 않은 프로그래머 중 한 명과 함께 설명해 드리겠습니다. 내가 저장 버튼과 관련된 자바 스크립트 코드의 코드 실행 안에 다음과 같은 코드를 추가했다 : 그런 다음

@Html.HiddenFor(m => m.LogEntry.EncodedDescription, new { @id = "logentry-encoded-message-content" }) 

다음 CSHTML 파일 내에서

var editor = $("#descriptionEditor").data("tEditor"); 
var message = editor.value(); 

$("#logentry-encoded-message-content").val(message); 

을, 다음과 같은 요소를 추가했다 양식 처리와 관련된 코드에서 EncodedDescription의 내용을 설명에 할당했습니다. 오히려 짜증나게, 나는 아직 여기에 하나의 변수를 사용하는 방법을 찾지 못했다. 또한 잠재적으로 위험한 HTML이 게시된다는 오류 메시지가 표시되지 않도록 EncodedDescription 속성에 [AllowHtml]의 한정자를 추가해야했습니다 (정확히 무엇이 게시되고 있는지 알고 있고 컨트롤에 대해 디코딩되고 인코딩됨을 알고 있습니다).).