将C#值传递给Javascript
在加载页面时,我想从服务器端变量向我的javascript函数传递一个值。
我似乎无法让它工作这就是我所拥有的:
Asp.Net
protected void Page_Load(object sender, EventArgs e) { string blah="ER432"; }
使用Javascript
var JavascriptBlah = ''; initObject.backg.product_line = JavascriptBlah;
将其添加到页面
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页面中添加隐藏的输入:
然后在你的代码后面将它设置为你想要传递给.js函数的内容:
param1.value = "myparamvalue"
最后你的javascript函数可以访问如下:
document.getElementById("param1").value
我过去所做的是webforms所做的function – 创建一个隐藏字段来存储客户端所需的值。 如果您使用的是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"; } }
你应该在class级宣布blah
。