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