Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Asp.Net代码中调用JavaScript函数?_Javascript_C#_Asp.net_Webforms - Fatal编程技术网

如何从Asp.Net代码中调用JavaScript函数?

如何从Asp.Net代码中调用JavaScript函数?,javascript,c#,asp.net,webforms,Javascript,C#,Asp.net,Webforms,这是我的JavaScript函数: function WantToSave() { alert('You should save now !'); } 这是我的ASP.NET后台代码: Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();"); 可以肯定的是,RegisterStartupScript函数已经到达。但它不会触发我的JavaScript函数。第二个参数,应该是“开始

这是我的JavaScript函数:

function WantToSave()
{
    alert('You should save now !');
}
这是我的ASP.NET后台代码:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();");
可以肯定的是,
RegisterStartupScript
函数已经到达。但它不会触发我的JavaScript函数。第二个参数,应该是“开始脚本的键”是的,但是我应该在那里放什么呢?

您应该试试这个:

var name = "WantToSave";
var script = "<script>alert('You should save now !');</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), name, script);

默认情况下,脚本写入输出,但不带
标记。如果您使用浏览器的JavaScript控制台或查看客户端上生成的HTML,您可能会注意到这一点。确保您熟悉这些工具

您可以让它使用该方法的一部分为您添加脚本标记

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);
或者您可以自己添加它们:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");
Page.ClientScript.RegisterStartupScript(this.GetType(),“MyKey”,“WantToSave();”;

键字符串和控件注册时使用的类型的组合用于唯一标识已注册的脚本,以防以后要取消注册或用其他脚本替换它。因此,密钥不必是任何特定的,只需是唯一的。

根据MSDN,使用此重载,您必须将呼叫包装在
标记中,因此您可以执行以下操作:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "<script>WantToSave();</script>");

这将根据布尔参数添加或不添加它们。

您可以使用脚本管理器寄存器启动脚本方法。它有一个名为addscripttags的bool参数(最后一个),用于为您添加脚本标记

ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WantToSave();",true); 

谢谢@mason,那么“我的钥匙”呢,我可以在那里写任何东西吗?“为什么?”安托瓦内佩尔蒂埃说得对。键字符串和控件注册时使用的类型的组合用于唯一标识已注册的脚本,以防以后要取消注册或用其他脚本替换它。因此,关键不必是任何特定的,只是一些独特的。谢谢@mason-这是我需要的。这很有趣!特别是对于Guid.NewGuid()函数,它允许我随时显示警报。谢谢@Jhon Paul
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "WantToSave();", true);
ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "WantToSave();",true);