【问题标题】:Calling a function in js file from C# code从 C# 代码调用 js 文件中的函数
【发布时间】:2015-06-18 19:54:11
【问题描述】:

我有一个cs文件,我想调用js文件的函数。

Js 文件

Function foo(date){
//code
}

在一个cs文件中,我想调用foo函数。是否可以 ?如果是,那么如何?

如果我只想插入一个警报,那么我就是这样做的,但是如果我想调用一个函数,那么我不知道方法。

只调用一个内联 javascript 这行得通

Page.ClientScript.RegisterStartupScript(GetType(), "", "<script type='Text/JavaScript'> alert('Hello');</script>");

【问题讨论】:

  • 调用alert 是调用一个函数。你到底想做什么,你有什么问题?
  • @RickS 当我写 Page.ClientScript.RegisterStartupScript(GetType(), "", "foo()", true); 时,它显示 "Page.ClientScript.RegisterStartupScript(GetType(),"","foo()",true);"

标签: javascript c# asp.net


【解决方案1】:

尝试使用函数名而不是整个脚本本身。

Page.ClientScript.RegisterStartupScript(GetType(),"","foo()",true);

或使用 ScriptManager:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(),"","foo()",true);

编辑:

true后面加上布尔值,它会自动添加脚本标签,你就不需要了。

【讨论】:

  • 它显示“对象引用未设置为对象的实例”。
  • 如果 foo 函数中没有参数,它可以工作,但是如果我传递了一个日期参数,那么我如何使用代码 Page.ClientScript.RegisterStartupScript(GetType(),"","foo()",true) 传递它。如果没有参数,它就可以工作。
  • 我可以看看你是如何传递参数的。
  • Page.ClientScript.RegisterStartupScript(GetType(), "a", "foo("aa","bb")", true); Foo 在函数中有 2 个参数。
  • 问题不在于一两个变量,而在于它们的使用方式。 foo(' " + hello + " ', ' " + wor + " ');" 没有单引号,它认为hellowor 是javascript 变量并在&lt;script&gt; 标记中查找这些变量。由于它们是在 C# 中声明和初始化的,我们需要将它们作为字符串传递给 javascript 函数。
猜你喜欢
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
相关资源
最近更新 更多