2015-05-30 8 views
-2

в ToString методе моего объекта, я пытаюсь создать информационную строку, включает в себя кавычки. поэтому я использую обратный слеш перед цитатой и все хорошо, пока я не попытаться присвоить возвращаемое значение строковой переменной и после этого все обратный слэш камбэк .Здесь функция ToString:Использование обратной косой черты для ускорения qute регенерации после привязки Строка

public override string ToString() 
    { 
     string content = "{"; 
     content += "\"serviceType\":" + ServiceType.Name + ","; 
     content += "\"Debt\":" + amount; 
     content += "}"; 
     return content; 
    } 

после этого я пытаюсь использовать StringWriter и HtmlTextWriter для генерации HTML, но после того, как присвоить возвращаемое значение переменной строкового есть много \, \r, \n, \t в variable.here функция:

public string ToHtmlString() 
    { 

     StringWriter stringWriter = new StringWriter(); 
     using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) 
     { 
      writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%"); 
      writer.AddStyleAttribute(HtmlTextWriterStyle.BorderStyle, "1px solid black"); 
      writer.AddStyleAttribute(HtmlTextWriterStyle.Direction, "rtl"); 
      writer.RenderBeginTag(HtmlTextWriterTag.Table);// Begin Table 

      writer.RenderBeginTag(HtmlTextWriterTag.Tr); 
      writer.RenderBeginTag(HtmlTextWriterTag.Td); 
      writer.Write("زیر خدمت"); 
      writer.RenderEndTag(); 
      writer.RenderBeginTag(HtmlTextWriterTag.Td); 
      writer.Write(ServiceType.Name); 
      writer.RenderEndTag(); 
      writer.RenderEndTag(); 

      writer.RenderBeginTag(HtmlTextWriterTag.Tr); 
      writer.RenderBeginTag(HtmlTextWriterTag.Td); 
      writer.Write("مبلغ"); 
      writer.RenderEndTag(); 
      writer.RenderBeginTag(HtmlTextWriterTag.Td); 
      writer.Write(amount); 
      writer.RenderEndTag(); 
      writer.RenderEndTag(); 

      writer.RenderEndTag();// End Table 
     } 
     return stringWriter.ToString(); 
    } 

и после присвоения значения переменной:

<table style=\"width:100%;border-style:1px solid black;direction:rtl;\">\r\n\t<tr>\r\n\t\t<td>زیر خدمت</td><td>درمان</td>\r\n\t</tr><tr>\r\n\t\t<td>مبلغ</td><td>6000</td>\r\n\t</tr>\r\n</table> 

Что здесь происходит?

+0

Трудно видеть, «что здесь происходит», не показывая какой-то код. –

+0

@BlasSoriano я обновляю сообщение. – Mahdi

+0

Позвольте мне проверить, вернемся коротким. –

ответ

1

Этот результат кажется удобным для использования в элементе управления webBrowser внутри C#. Если вы предпочитаете избегать этих новых строк и вкладок (для реального браузера), вы можете попробовать заменить несколько строк своего кода следующим образом.

старый код:

using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) 
    { 

НОВЫЙ КОД:

using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter, string.Empty)) 
    { 
     writer.NewLine = string.Empty; 

Второй параметр в HtmlTextWriter это строка используется в качестве вкладки. Таким образом, результат вы получите, будет, как:

<table style=\"width:100%;border-style:1px solid black;direction:rtl;\"><tr><td>زیر خدمت</td><td>درمان</td></tr><tr><td>مبلغ</td><td>6000</td></tr></table> 

EDIT: Для того, чтобы избежать \»вы можете использовать <? php echo или <%= (для жереха), или лучше переработать результат как:

return stringWriter.ToString().Replace("\"", "'"); 
+0

Я использую ваш sugesstion, но у меня все еще есть '\' 'в моем результате. Но другой' \ n', '\ t', ... ушел – Mahdi

+0

Это не должно быть проблемой. Вы можете протестировать его с помощью любого онлайн-инструмента, например [HTML и скриптовый тестер] (http://www.csgnetwork.com/htmlcodetest.html). Проверьте это [скриншот] (http://i.imgur.com/8AeqX3c.png) –

+0

Я уже проверяю его, но как вы можете видеть в стилях скриншотов, не применяемых к таблице. – Mahdi

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

  • Нет связанных вопросов^_^