如何将静态html放在c#的字符串中?

时间:2011-06-29 15:55:39

标签: c# visual-studio escaping

我是否需要完成整个事情(见下文)并将其转换为将其放入字符串中? (使用c#,vs 2010,控制台应用程序)

<link rel="stylesheet" href="_layouts/jquery/global.css">
<script type="text/javascript" src="_layouts/jQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="_layouts/jQuery/slides.min.jquery.js"></script>
<script>
    $(function(){
        $('#slides').slides({
            preload: true,
            preloadImage: 'img/loading.gif',
            play: 5000,
            pause: 2500,
            hoverPause: true,
            animationStart: function(current){
                $('.caption').animate({
                    bottom:-50
                },100);
                if (window.console && console.log) {
                    // example return of current slide number
                    console.log('animationStart on slide: ', current);
                };
            },
            animationComplete: function(current){
                $('.caption').animate({
                    bottom:0
                },200);
                if (window.console && console.log) {
                    // example return of current slide number
                    console.log('animationComplete on slide: ', current);
                };
            },
            slidesLoaded: function() {
                $('.caption').animate({
                    bottom:0
                },200);
            }
        });
    });
</script>

    <div id="container">
        <div id="example">
            <img src="img/new-ribbon.png" width="112" height="112" alt="New Ribbon" id="ribbon">
            <div id="slides">
                <div class="slides_container">

7 个答案:

答案 0 :(得分:5)

如果你有大量的文本要放在一个字符串中,我就不会硬编码到源代码中。将其包含在可以从磁盘加载的文件中,或者将其包含在嵌入式资源中并使用Assembly.GetManifestResourceStream加载它。这样就不需要转义,你可以在你喜欢的编辑器中使用语法高亮,而你的C#代码仍然用C#而不是HTML。

答案 1 :(得分:3)

对于这么大的文本,我不会直接在代码中引用它。我会考虑将其添加为linked resourceembedded resource并从那里读取。

答案 2 :(得分:2)

我猜这个显而易见的问题是,你为什么要把所有内容都放到一个字符串中呢?如果您希望javascript有条件地包含在页面中,最好将其存储在单独的文件中,然后使用客户端脚本管理器将该脚本添加到页面中,即

ClientScriptManager cs = Page.ClientScript;
if (!cs.IsClientScriptIncludeRegistered(cstype, csname))
{
    cs.RegisterClientScriptInclude(cstype, csname, ResolveClientUrl(csurl));
}

答案 3 :(得分:0)

是的,您需要转义所有内容才能将其放入字符串中。您还可以使用的一件事是StringBuilder一次构建一行代码。你仍然需要转义像'''这样的字符。最好的选择是将它作为你应用程序中的外部资源保留。玩得开心。

答案 4 :(得分:0)

是的,你是对的,你需要转义字符串中的每个引号。

但是在后面的代码中构建整个页面这样的事情是非常糟糕的事情。 不要这样做。

答案 5 :(得分:0)

另一种方式: 把它放在资源文件中,如果有什么变化,你不需要再次转义它。

答案 6 :(得分:0)

您必须将其转义为直接在C#文件中。为什么不将它存储为外部文件并将其读入字符串呢?只需使用StreamReader或类似的东西。