通过Javascript从后台代码访问全局静态变量

Access global static variable from code behind through Javascript

本文关键字:全局 静态 变量 访问 代码 Javascript 后台 通过      更新时间:2023-09-26

当从javascript调用的函数后面的代码中获取静态变量时,我遇到了一些问题。

我的aspx页面:

<script type="text/javascript">
function AlertMsg(msg) {
   var msg213 = "<%= GetValue(" msg ") %>";
   alert(msg + '::' + msg213);
}
</script>

背后的代码:

public string GetValue(string sString)
{
   return MyNamespace.MyClass.MyStaticVariable;
}

我在另一个页面的page_load中设置了这个变量。我通过从c# WebBrowser应用程序调用它来访问javascript函数。总是空的

任何想法?

我认为你只需要在你对'msg'的引用后面加上'+'

var msg213 = "<%= GetValue(" + msg + ") %>";

NET不像桌面应用程序,在另一个页面上编写的任何变量在移动到另一个页面时会丢失。您需要将值保存到持久的位置。

    <
  1. 会话/gh>缓存
  2. 数据库
  3. 应用或Web配置文件。
  4. 变量必须是常量或静态

试试这个

'<%= GetValue("Some Value") %>';

这意味着当页面呈现时,GetValue方法调用和返回字符串将写入文档主体,如response。写

这只会在页面呈现时发生,并且不会发生进一步的调用

我认为部分混乱来自于代码中的格式。如果您只查看服务器标记:<%= GetValue(" msg ") %>,您将看到正在调用GetValue方法,并且正在传入字面值字符串msg。服务器标记本身周围有引号,但这些引号不影响服务器标记内部的内容。不是传递JavaScript函数的msg参数的值。

服务器方法不能以这种简单的方式从JavaScript中调用,它需要使用类似AJAX的东西来完成。