2013-04-12 5 views
0

В настоящее время я использую CKEditor для моего проекта для чтения и отображения содержимого html-файла.чтение html-файла и отображение в CKEditor

Однако, вместо того, чтобы получать содержимое файла, все, что я получаю, это строка: < html> отображение в редакторе.

Но если я пишу контент непосредственно на страницу с помощью response.write, то все содержимое файла отображается правильно.

это фрагмент кода я использовал для чтения файла:

strPathToConvert = Server.MapPath("~/convert/"); 
    object filetosave = strPathToConvert + "paper.htm"; 
    StreamReader reader = new StreamReader(filetosave.ToString()); 
    string content = ""; 
    while ((content = reader.ReadLine()) != null) 
    { 
     if ((content == "") || (content == " ")) 
     { continue; } 
     CKEditor1.Text = content; 
     //Response.Write(content); 
    } 

Может кто-нибудь помочь мне решить эту проблему? Большое спасибо.

+0

Это должно работать, вы получаете какую-либо ошибку JavaScript или что-нибудь? –

+0

Нет, я не получаю никаких ошибок. Просто строка: отображается в CKEditor, пока все содержимое файла отображается непосредственно на странице при использовании response.write. Сегодня я много искал, но решения не найдено. – nghich1

+0

Вы можете попробовать экспериментировать. Посмотрите, что отображается, если вы жестко указали его на « asfd» или «blablablablalabla». Возможно, вам нужно закодировать HTML до установки на элементе управления –

ответ

0

Вы находитесь в цикле while, и вы переписываете содержимое CKEditor каждый раз, так как используете = вместо +=. Ваши петли должны быть:

StreamReader reader = new StreamReader(filetosave.ToString()); 
string content = ""; 
while ((content = reader.ReadLine()) != null) 
{ 
    if ((content == "") || (content == " ")) 
    { continue; } 
    CKEditor1.Text += content; 
    //Response.Write(content); 
} 

лучшим способом, вероятно, будет использовать

string content; 
string line; 
using (StreamReader reader = new StreamReader(filetosave.ToString()) 
{ 
    while ((line= reader.ReadLine()) != null) 
    { 
     content += line; 
    } 
} 
CKEditor1.Text = content; 
+0

Ничего особенного, я даже не заметил этого, читал в одной строке HTML за раз :-) –

+0

Это отлично работает. Но я попробовал свой первый метод раньше, но это не сработало. Но теперь он работает. – nghich1

Смежные вопросы