【发布时间】:2023-04-08 07:04:02
【问题描述】:
我正在尝试从 C# 中的代码运行 javascript 函数。我在互联网上查看了许多资源,但到目前为止还没有运气。这甚至不适用于我拥有的非常简单的示例代码:
后面的代码:
protected void Button2_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this,GetType(),"a","a();", true);
}
在我的 aspx 文件中:
<script type="text/javascript">
function a()
{
var i = 0;
}
</script>
当我运行它时,我得到:
0x800a1391 - JavaScript 运行时错误:“a”未定义
注意:
也试过了:
- ScriptManager.RegisterStartupScript(this,GetType(),"a","a()", true);
- ScriptManager.RegisterStartupScript(this,GetType(),"a","a", true);
仍然遇到同样的错误。
未来读者注意:诀窍是使用 ASP 更新面板。我没有找到一个单一的来源来指出这个非常重要的事实。
【问题讨论】:
-
你不应该使用只有 1 个字符的标识符
"a"或命名对象或类似的方法。现在,调试的第一步:ScriptManager.RegisterStartupScript(this,GetType(),"myDebugAlert","alert('My script is OK');", true);有效吗?你可以告诉我是的,那我可以告诉你这是因为当你的脚本注册 StartupScript 时你的a()函数不存在。 -
a 仅用于测试。我厌倦了在这里简化我的代码。是的,我直接在
ScriptManager.RegisterStartupScript(this,GetType(),"a","alert('test');", true)后面的代码上运行它。
标签: javascript c# asp.net vb.net