-2

ToString私のエンティティの方法では、引用符を含む情報文字列を生成しようとしています。だから私は引用符の前にバックスラッシュを使用し、戻り値を文字列変数に代入しようとするまですべてが良好であり、その後すべてのバックスラッシュのカムバック.hereはToString関数です:

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

その後、HTMLを使用StringWriterして生成しようとしましたが、戻り値を文字列変数に割り当てた後、変数には、、、、HtmlTextWriterがたくさんあります。関数は次のとおりです。 \\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>

ここで何が起こっているのですか?

4

1 に答える 1

1

その結果は、C# 内の webBrowser コントロールで使用しても問題ないようです。これらの改行とタブを (実際のブラウザーで) 避けたい場合は、コードの数行を次のように置き換えてみてください。

古いコード:

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

新しいコード:

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

HtmlTextWriter の 2 番目のパラメーターは、タブとして使用される文字列です。したがって、得られる結果は次のようになります。

<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("\"", "'");
于 2015-05-31T03:10:37.117 に答える