ASP.NET:RegisterStartupScript不起作用

时间:2013-01-19 08:06:54

标签: c# asp.net .net

我正在尝试在 Page_Load 上从服务器端运行客户端脚本,我从here找到了此代码。 这是服务器端代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!ClientScript.IsStartupScriptRegistered("alert"))
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(),
            "alert", "alertMe();", true);
    }
}

这是客户端代码:

<script type="text/javascript">
    function alertMe() {
        alert('Hello');
    }
</script>

Page_Load 没有任何反应。

更新:源代码coderun

2 个答案:

答案 0 :(得分:1)

在页面末尾定义之前,您正在调用alertMe()

使用asp.net注册的所有脚本都以表单标记呈现。

我建议将您的javascript块移到页面的头部。

<head runat="server">
  <script type="text/javascript">
    function alertMe() {
      alert('Hello');
    }
  </script>
</head>

这是您的modified code run按预期工作。

答案 1 :(得分:0)

我建议你检查两件事

  1. 你的js功能是不是在其他功能中。然后它对服务器

  2. 不可见
  3. 包含您脚本的html标记是否为runat="server"标记。

  4. 在你的情况下:

    <head runat="server">
        <script type="text/javascript">
            function alertMe() {
                alert('Hello');
            }
        </script>
    </head>