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

时间:2014-08-07 15:34:50

标签: c# javascript asp.net

在从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函数。它总是空着的。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

ASP.NET不像桌面应用程序,移动到另一个页面时,写在另一个页面上的任何变量都将丢失。您需要将值保存到某个持久的地方。

  1. 会话
  2. 高速缓存
  3. 数据库
  4. 应用程序或Web配置文件。
  5. 变量需要是const或static

答案 1 :(得分:1)

我认为你只需添加&#39; +&#39;围绕您对&#39; msg&#39;

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

答案 2 :(得分:1)

试试这个

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

这意味着当页面呈现时,GetValue方法调用和返回字符串将在文档正文中写入,如Respose.Write

这只会在页面呈现和没有进一步调用时发生。

答案 3 :(得分:0)

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

无法以这种简单的方式从JavaScript调用服务器方法,它需要使用像AJAX这样的东西来完成。