[英]Pass C# Values To Javascript
在加载页面时,我想从服务器端变量向我的javascript函数传递一个值。
我似乎无法让它工作这就是我所拥有的:
Asp.Net
protected void Page_Load(object sender, EventArgs e)
{
string blah="ER432";
}
使用Javascript
<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
你应该在班级宣布blah
。
你的string blah
需要是Page
类的公共属性,而不是Page_Load
的局部变量。 您需要了解范围界定。
public class MyPage
{
public string blah { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
blah = "ER432";
}
}
我过去所做的是webforms所做的功能 - 创建一个隐藏的字段来存储客户端所需的值。 如果您使用的是4.0,则可以将隐藏字段客户端ID模式设置为静态,以帮助保持清洁。 基本上,将您的值添加到隐藏字段,然后从javascript您可以获取值或修改它(如果您想要传回它),因为它只是一个dom元素。
如果你真的想使用代码 - 比如一个变量,它需要在类范围内可访问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.