" Page.ClientScript.RegisterClientScriptBlock"在" ScriptManager.RegisterClientScriptBlock"

时间:2017-08-20 09:07:17

标签: javascript c# asp.net

我想知道Page.ClientScript.RegisterClientScriptBlock 工作时ScriptManager.RegisterClientScriptBlock无效的原因

我的代码正在使用此代码:

this.Page.ClientScript.RegisterClientScriptBlock(GetType(), "headerComment", "<script>NOT WORKING</script>", false);

过去它过去常常工作

所以我试图找到一个解决方案,我确实发现主页不包含 <form id="form1" runat="server">

当我添加form代码this.Page.ClientScript.RegisterClientScriptBlock时 没有工作,然后我尝试使用ScriptManager.RegisterClientScriptBlock(this.Page, GetType(), "headerComment", "<script>WORKING</script>", false); 它起作用了。

我更喜欢使用Page.ClientScript.RegisterClientScriptBlock而不是ScriptManager.RegisterClientScriptBlock,这样我就不需要更改现有的工作代码。

我没有找到差异,如果这些差异之间存在差异...... ScriptManager.RegisterClientScriptBlock更改会导致我的应用程序发生此更改。

可能是什么原因:

 this.Page.ClientScript.RegisterClientScriptBlock(GetType(), "headerComment", "<script>NOT WORKING using 'Page.ClientScript.RegisterClientScriptBlock'</script>", false);

无效?

1 个答案:

答案 0 :(得分:0)

对我有用的解决方案是包装母版页的正文内容 form标记带有runat="server"属性:

<body>
  <form id="form1" runat="server">
  ...
  ...
  </form>
</body>

然后,从母版页中运行的任何代码页面开始,以下代码可以正常工作

Page.ClientScript.RegisterClientScriptBlock(GetType(), "scriptId", "<script>console.log('working');</script>", false);