2016-07-24 2 views
0

Я пытаюсь сделать основной HTML веб-страницу с помощью C# и HTMLTextWriter для вывода на WebBrower объекта #, но у меня возникают проблемы, оказывающие <meta> тега в моем HTML выходе.Дать <meta> метку, используя HtmlTextWriter в C вопрос

То, что я ожидал, чтобы быть выход ..

<!DOCTYPE html> 
<html> 

    <head> 
    <meta charset="UTF-8"> 
    <title>My Website</title> 
    </head> 

    <body> 
    <h1>Hello World!</h1> 
    </body> 

</html> 

что в настоящее время выход ..

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    </meta charset="UTF-8"><title> 
     My Website 
    </title> 
    </head><body> 
    <h1> 
     Hello World! 
    </h1> 
    </body> 
</html> 

Обратите внимание, как <meta> тег выводится в <meta charset="UTF-8"> & </meta charset="UTF-8"> вместо <meta charset="UTF-8">.

Что я могу сделать, чтобы исправить эту проблему?

Вот код, я использую ..

var sw = new StringWriter(); 
using (var writer = new HtmlTextWriter(sw)) { 
    writer.RenderBeginTag("!DOCTYPE html"); 
    writer.RenderBeginTag(HtmlTextWriterTag.Html); 
     writer.RenderBeginTag(HtmlTextWriterTag.Head); 
      writer.RenderBeginTag("meta charset=\"UTF-8\""); 
      writer.RenderEndTag(); 
      writer.RenderBeginTag(HtmlTextWriterTag.Title); 
       writer.Write("SIT323 - My Website"); 
      writer.RenderEndTag(); 
     writer.RenderEndTag(); 
     writer.RenderBeginTag(HtmlTextWriterTag.Body); 
      writer.RenderBeginTag(HtmlTextWriterTag.H1); 
       writer.Write("Hello World!"); 
      writer.RenderEndTag(); 
     writer.RenderEndTag(); 
    writer.RenderEndTag(); 
}; 
return sw.ToString(); 

ответ

3

Попробуйте:

writer.AddAttribute("charset", "UTF-8"); 
writer.RenderBeginTag(HtmlTextWriterTag.Meta); 
// Other needed methods... 
writer.RenderEndTag(); 

Результат:

<meta charset="UTF-8"> 

Шаблон кодирования для рендеринга элементов разметки выглядит следующим образом:

  1. Используйте метод AddAttribute добавить любые атрибуты элемента.

  2. Используйте метод RenderBeginTag.

  3. Используйте другие методы по мере необходимости для визуализации содержимого, найденного между метками открытия и закрытия элемента.

  4. Используйте метод RenderEndTag.

+0

Отлично! Спасибо. – TheAuzzieJesus

+0

@ TheAuzzieJesus, пожалуйста, снова просмотрите код ответа. Notic вы ** должны ** использовать 'RenderEndTag()' после 'RenderBeginTag (...)'. Другими словами, вы должны, наконец, использовать 'RenderEndTag()' после каждого 'RenderBeginTag (...)'. Хотя между ними могут быть другие методы. – RAM

+0

Благодарим вас, я сумел понять это с помощью пробной ошибки. – TheAuzzieJesus

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