繁体   English   中英

将C#值传递给Javascript

[英]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";
        //....

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM