C#带有HTML的多行字符串

14

是否可以有一个包含html的多行C#字符串?

以下代码工作正常:

        string output = @"Qiuck 
                        brown
                        fox
                        jumps
                        over
                        the
                        lazy 
                        log";

但是这并不起作用:

            string output = @"<object>
                        <node>
                        <param value=\"test\" />
                        </node>
                        </object>
                        ";

然而,这个类似的例子是有效的,我只是在param上去掉了属性:

            string output = @"<object>
                        <node>
                        <param />
                        </node>
                        </object>
                        ";
有没有最佳的方法将HTML打包成字符串变量?如果不行,那么我想下一个最好的方法就是直接从文件中读取。还有其他的想法吗? 例2的问题似乎在于转义引号。
3个回答

39

使用双引号而不是转义它们。

    string output = @"<object>
                    <node>
                    <param value=""test"" />
                    </node>
                    </object>
                    ";

4
吹毛求疵:从技术上讲,它仍然是转义,只不过使用了不同的转义字符 :) - Thorarin

9

使用""代替\"。它仍然会输出"。当您处理字面字符串时,转义字符不会被处理:

string output = @"<object>
                      <node>
                          <param value=""test"" />
                      </node>
                  </object>
                  ";

为了让意思更加明确:当您使用“verbatim”字面字符串时,“normal string”转义字符不会被处理。 - Suncat2000

2

在参数中使用单引号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接