C# 在开关块/C中显示JS脚本块(例如广告词脚本)#

C# 在开关块/C中显示JS脚本块(例如广告词脚本)#,c#,controls,C#,Controls,我尝试编写控件(.ascx)来管理内部页面上的横幅 我通过开关盒来实现,每个ID都匹配正确的横幅。问题是——如何将Adwords JS脚本放入开关中断 应该是这样的: switch(_bannerId) { case "banner1": { <script type= > Google adsense code </script> } case "ban

我尝试编写控件(.ascx)来管理内部页面上的横幅

我通过开关盒来实现,每个ID都匹配正确的横幅。问题是——如何将Adwords JS脚本放入
开关中断

应该是这样的:

switch(_bannerId) 
{ 
     case "banner1": 
     {
           <script type= >
              Google adsense code
           </script>
     }
     case "banner2": 
     {
           <script type= >
              Google adsense code
           </script>
     }

     break;  
} 
开关(\u)
{ 
案例“banner1”:
{
谷歌adsense代码
}
案例“banner2”:
{
谷歌adsense代码
}
打破
} 
可能吗?怎么做

编辑

它不能与
Response.Write()一起工作

我尝试搜索“如何从代码隐藏中调用Javascript”,但我找不到合适的帖子。

你不能简单地将c代码和html混合,你需要将html代码视为字符串,并将它们添加到页面输出中

将此文件添加到.ascx文件:

<Asp:Literal runat="server" ID="AdwordsScript"></Asp:Literal>

然后转到您的ascx.cs文件:

switch(_bannerId) 
{ 
     case "banner1": 
     {
           AdwordsScript.Text= @"<script type=""text/javascript"">
              //Google adsense code 1
           </script>";
     }
     break;  
     case "banner2": 
     {
           AdwordsScript.Text= @"<script type=""text/javascript"">
              //Google adsense code 2
           </script>";
     }
     break;  
} 
开关(\u)
{ 
案例“banner1”:
{
AdwordsScript.Text=@”
//谷歌adsense代码1
";
}
打破
案例“banner2”:
{
AdwordsScript.Text=@”
//谷歌adsense代码2
";
}
打破
} 

调用
Response.Write()
将损坏输出标记,即在调用
Render()
之前写入内容,从而将脚本置于文档标记之外。将
Literal
添加到页面,并将
Literal
Text
属性设置为与脚本相等

。它适用于这样的场景,让您能够更好地控制脚本的执行时间。如果您在页面上使用的是
ScriptManager
,则存在一个

或者,为了避免代码隐藏中出现较大的脚本字符串,您可以在标记中的
占位符中声明所有脚本,并根据switch语句显示/隐藏它们

C# 用户控制

//脚本在这里
//脚本在这里
switch(_bannerId){
  case "banner1":
      this.plhScript1.Visible = true;
      break;
  case "banner2":
      this.plhScript2.Visible = true;
      break;
  default:
      throw new InvalidOperationException( "Unknown banner type" );
}
<asp:Placeholder runat="server" id="plhScript1" visible="false">
    <script>
    // script goes here


    </script>
</asp:Placeholder>

<asp:Placeholder runat="server" id="plhScript2" visible="false">
    <script>
    // script goes here


    </script>
</asp:Placeholder>