Javascript ASP.NET使用RegisterStartupScript调用定义的JS函数

Javascript ASP.NET使用RegisterStartupScript调用定义的JS函数,javascript,asp.net,function,call,invoke,Javascript,Asp.net,Function,Call,Invoke,在ASP.NET中,我们使用以下函数调用定义的js函数: Page.ClientScript.RegisterStartupScript(GetType(), "", "JSFuncNameHere();", true); 我想知道: 为什么没有任何方法,其名称类似于:Page.ClientScript.CallJSScript(“someJSFunc”) 为什么上面的方法需要反射方法GetType()?有些东西在运行时没有定义,是吗 为什么我需要第二个参数键?正如我所测试的,我可以将其留空

在ASP.NET中,我们使用以下函数调用定义的js函数:

Page.ClientScript.RegisterStartupScript(GetType(), "", "JSFuncNameHere();", true);
我想知道:

  • 为什么没有任何方法,其名称类似于:Page.ClientScript.CallJSScript(“someJSFunc”)
  • 为什么上面的方法需要反射方法GetType()?有些东西在运行时没有定义,是吗
  • 为什么我需要第二个参数
    ?正如我所测试的,我可以将其留空,并调用现有的JS函数
      • 为什么没有任何方法,其名称类似于:Page.ClientScript.CallJSScript(“someJSFunc”)
      可能是因为这是一个更通用的解决方案,因为只需添加2个字符就可以得到相同的结果,如果需要,还可以添加参数和其他任何内容

      • 为什么上面的方法需要反射方法GetType()?有些东西在运行时没有定义,是吗
      • 为什么我需要第二个参数键?正如我所测试的,我可以将其留空,并调用现有的JS函数

      出于这两个原因,该方法将检测您是否多次运行同一脚本,在这种情况下,只调用它一次。这两个参数是它标识重复项的方法—一个键是不够的,因为不同库中的另一个类可能使用相同的键—因此您需要传入自己的类的类型,以确保脚本在需要时执行。

      值得指出的是
      RegisterStartupScript
      ——提供“备注”中第2点和第3点的答案。当试图确定方法参数的用途时,MSDN应该始终是您的第一站:)