将 C# 值传递给 Javascript
本文关键字:Javascript 值传 | 更新日期: 2023-09-27 18:37:17
在加载页面时,我想从服务器端变量向我的javascript函数传递一个值。
我似乎无法让它工作,这就是我所拥有的:
Asp.Net
protected void Page_Load(object sender, EventArgs e)
{
string blah="ER432";
}
爪哇语
<script type="text/javascript">
var JavascriptBlah = '<%=blah%>';
initObject.backg.product_line = JavascriptBlah;
</script>
将其添加到页面
public string blah { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
blah="ER432";
}
我仍然收到错误:CS0103:当前上下文中不存在名称"blah"
我也想尝试在不使用hdden字段的情况下完成此操作
我相信
您的 C# 变量必须是类成员才能做到这一点。尝试在类级别声明它,而不是 Page_Load()
的局部变量。一旦完成page_load它显然就失去了范围。
public partial class Example : System.Web.UI.Page
{
protected string blah;
protected void Page_Load(object sender, EventArgs e)
{
blah = "ER432";
//....
在这种特殊情况下,blah
是本地的,Page_Load
您必须使其成为类级别成员(可能使其成为属性)才能像这样公开它。
您可以在 html 页面中放置隐藏输入:
<input type="hidden" runat='server' id="param1" value="" />
然后在代码隐藏中将其设置为要传递给.js函数的内容:
param1.value = "myparamvalue"
最后,你的javascript函数可以访问如下:
document.getElementById("param1").value
我过去所做的是Webforms的功能 - 创建一个隐藏字段来存储客户端所需的值。 如果您使用的是 4.0,则可以将隐藏字段客户端 ID 模式设置为静态,以帮助保持更整洁。基本上,将值添加到隐藏字段中,然后从javascript中获取值或修改它(如果您想将其传回),因为它只是一个dom元素。
如果你真的想使用代码——就像一个变量,它需要在类范围内是可访问的。
您的string blah
必须是Page
类的公共属性,而不是Page_Load
中的局部变量。 您需要了解范围。
public class MyPage
{
public string blah { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
blah = "ER432";
}
}
你应该在类级别声明blah
。