Pass C# Values To Javascript

后端 未结 6 815
感动是毒
感动是毒 2020-12-09 22:00

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.Ne

相关标签:
6条回答
  • 2020-12-09 22:24

    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.

    0 讨论(0)
  • 2020-12-09 22:32

    In this particular case, blah is local to Page_Load you'll have to make it a class level member (probably make it a property) for it to be exposed like that.

    0 讨论(0)
  • 2020-12-09 22:36

    You should declare blah at class level.

    0 讨论(0)
  • 2020-12-09 22:40

    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
    
    0 讨论(0)
  • 2020-12-09 22:43

    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";
            //....
    
    0 讨论(0)
  • 2020-12-09 22:44

    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";
        }
    }
    
    0 讨论(0)
提交回复
热议问题