将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"; //.... 

在这种特殊情况下, blahPage_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