在从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函数。它总是空着的。
有什么想法吗?
答案 0 :(得分:1)
ASP.NET不像桌面应用程序,移动到另一个页面时,写在另一个页面上的任何变量都将丢失。您需要将值保存到某个持久的地方。
答案 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这样的东西来完成。