简体   繁体   中英

Pass C# Values To Javascript

On loading the page I want to pass a value to my javascript function from a server side variable.

I cannot seem to get it to work this is what I have:

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>

Adding this to the page

 public string blah { get; set; }


        protected void Page_Load(object sender, EventArgs e)
        {
           blah="ER432";
        }

I still am getting an error: CS0103: The name 'blah' does not exist in the current context

Also I would like to try and accomplish this without using hdden fields

I believe your C# variable must be a class member in order to this. Try declaring it at the class level instead of a local variable of Page_Load() . It obviously loses scope once page_load is finished.

public partial class Example : System.Web.UI.Page
{
    protected string blah;

    protected void Page_Load(object sender, EventArgs e)
    {
        blah = "ER432";
        //....

在这个特殊情况下, blahPage_Load本地,你必须使它成为一个类级别的成员(可能使它成为一个属性),让它像那样暴露。

You can put a hidden input in your html page:

<input  type="hidden" runat='server' id="param1" value="" />

Then in your code behind set it to what you want to pass to your .js function:

param1.value = "myparamvalue"

Finally your javascript function can access as below:

document.getElementById("param1").value

你应该在班级宣布blah

Your string blah needs to be a public property of your Page class, not a local variable within Page_Load . You need to learn about scoping.

public class MyPage
{
    public string blah { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        blah = "ER432";
    }
}

What I've done in the past is what webforms does as it's functionality--creating a hidden field to store values needed by the client. If you're using 4.0, you can set the hidden field client id mode to static to help keep things cleaner as well. Basically, add you value to the hidden field and then from javascript you can get the value or modify it too(in case you want to pass it back) since it's just a dom element.

If you really want to use code--like a variable, it needs to be accessible at the class scope.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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