Использование обратной косой черты для экранирования qute регенерата после назначения строки
В ToString
Метод моей сущности, я пытаюсь сгенерировать информационную строку, содержащую кавычки. поэтому я использую обратную косую черту перед кавычками, и все будет хорошо, пока я не попытаюсь присвоить возвращаемое значение строковой переменной, а после этого все обратные косые черты возвращаются. Здесь есть функция ToString:
public override string ToString()
{
string content = "{";
content += "\"serviceType\":" + ServiceType.Name + ",";
content += "\"Debt\":" + amount;
content += "}";
return content;
}
после этого я пытаюсь использовать StringWriter
а также HtmlTextWriter
генерировать HTML, но после присвоения возвращаемого значения строковой переменной, есть много \
, \r
, \n
, \t
в переменной. есть функция:
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>
что тут происходит?
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>
РЕДАКТИРОВАТЬ: Чтобы избежать \"вы могли бы использовать <? php echo
или же <%=
(для жереха), или лучше переделать результат как:
return stringWriter.ToString().Replace("\"", "'");