Notice: Undefined index: in /data/phpspider/phplib/misc.function.php on line 226
C# 如何动态不呈现脚本标记?_C#_Javascript_Html_Asp.net_.net - Fatal编程技术网

C# 如何动态不呈现脚本标记?

C# 如何动态不呈现脚本标记?,c#,javascript,html,asp.net,.net,C#,Javascript,Html,Asp.net,.net,我希望能够动态地(在页面加载时)决定将其设置为Visible=false,这样它就不会被渲染。我尝试了runat=server,但这仅适用于虚拟路径。您可以使用或有条件地添加脚本 if (condition) { String csname2 = "ButtonClickScript"; Type cstype = this.GetType(); StringBuilder cstext2 = new StringBuilder(); cstext2.Ap

我希望能够动态地(在页面加载时)决定将其设置为
Visible=false
,这样它就不会被渲染。我尝试了
runat=server
,但这仅适用于虚拟路径。

您可以使用或有条件地添加脚本

if (condition)
{    
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();
    StringBuilder cstext2 = new StringBuilder();
    cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
    cstext2.Append("Form1.Message.value='Text from client script.'} </");
    cstext2.Append("script>");
    cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
}

在ASP.NET标记语言中,您可以控制任何任意内容的呈现。仅在特定条件下呈现脚本标记的操作应简单到:

<% if (shouldRenderScriptTag) { %>
    <script src="..." />
<% } %>


是否要从源代码中删除脚本标记?@Adil有时我需要它,有时我不希望它被渲染。只有在运行时才能知道这个链接。考虑把Script脚本块移动到一个单独的文件,然后有条件地登记它是否“代码>代码>不工作?谢谢。看起来很有希望。如果要添加
script
标记,为什么最后一个参数是
false
?因为脚本标记存在于传递给RegisterClientScriptBlock的字符串中,这就是问题所在-如果ASP.NET为您提供了此选项,您不需要手动执行此操作。我从MSDN复制了代码(在我的答案中包含链接),并且没有更改, +1. 我仍然无法决定接受哪个答案。你回答了实际的问题,但阿迪尔回答了潜在的问题。你们俩都值得表扬。哦,好吧,总有一天我必须做出决定:)再次感谢。@ispiro-字面上的答案是如此直截了当,我认为它对社区将没有什么用处。如果Adil的答案能帮助你更好地设计代码,我会选择他的。
<% if (shouldRenderScriptTag) { %>
    <script src="..." />
<% } %>