赋值字符串后用于转义的反斜杠



在我的实体的ToString方法中,我尝试生成一个包含引号的信息字符串。所以我在引号前使用反斜杠,一切都很好,直到我试图将返回值赋给字符串变量,之后所有反斜杠返回。这是ToString函数:

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

之后,我尝试使用StringWriterHtmlTextWriter来生成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;">rnt<tr>rntt<td>زیر خدمت</td><td>درمان</td>rnt</tr><tr>rntt<td>مبلغ</td><td>6000</td>rnt</tr>rn</table>

这是怎么回事?

这个结果似乎可以在c#中的webBrowser控件中使用。如果你想避免这些换行符和制表符(对于一个真正的浏览器),你可以尝试像这样替换几行代码。

旧代码:

using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
    {
新代码:

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

htmltextwwriter中的第二个参数是用作制表符的字符串。所以你得到的结果是:

<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<%=(对于asp),或者更好地将结果修改为:

return stringWriter.ToString().Replace(""", "'");

相关内容

  • 没有找到相关文章

最新更新