JavaScript函数从浏览器控制台执行,但不从Page.ClientScript.RegisterStartupScript C#方法执行

JavaScript函数从浏览器控制台执行,但不从Page.ClientScript.RegisterStartupScript C#方法执行,javascript,c#,html,asp.net,webforms,Javascript,C#,Html,Asp.net,Webforms,我有一个母版页,在其中导入一个脚本文件,该脚本文件具有名为ShowNotifyErrorFor()的函数。当表单验证期间发生错误时,从使用此母版页的子页调用此方法。我是这样从C#调用这个函数的: 当我使用相同的参数从浏览器控制台调用相同的JavaScript函数时,它的执行是正确的。但当从C#调用时,它不会执行 相同的代码在不使用任何母版页的页面上工作 我尝试的是: 我检查了页面是否呈现了表单标记,因为其中一个SO问题建议使用此解决方案。但是表单标记正在呈现 我试图通过将false作为第三个参数

我有一个母版页,在其中导入一个脚本文件,该脚本文件具有名为
ShowNotifyErrorFor()
的函数。当表单验证期间发生错误时,从使用此母版页的子页调用此方法。我是这样从C#调用这个函数的:

当我使用相同的参数从浏览器控制台调用相同的JavaScript函数时,它的执行是正确的。但当从C#调用时,它不会执行

相同的代码在不使用任何母版页的页面上工作

我尝试的是:

  • 我检查了页面是否呈现了表单标记,因为其中一个SO问题建议使用此解决方案。但是表单标记正在呈现
  • 我试图通过将
    false
    作为第三个参数传递给
    RegisterStartupScript
    来不添加脚本标记。但它不起作用
  • 我检查了
    ClientScript
    对象是否包含渲染的脚本,发现它包含脚本,我在浏览器控制台上复制并粘贴了该脚本,它在那里工作正常

  • 您是使用UpdatePanel通过Ajax调用执行的吗?@hardkoded噢,非常感谢。UpdatePanel没有包含文本框,而是在页面中的某个位置使用。但是没有必要在那里使用它。我把它取下来,它就起作用了。请你把这个作为一个完整解释的答案加上好吗?它可以在未来帮助他人,并为我们双方赢得一些声誉积分。:)
    double flatRate;
    if (double.TryParse(flateRateTxt.Text, out flatRate) == false)
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowNotifyErrorFor", "ShowNotifyErrorFor(document.getElementById('" + flateRateTxt.ClientID + "'),'Invalid Rate')", true);
        return;
    }