【问题标题】:Access javascript variable's value in .cs file that is in in code behind?访问位于代码后面的 .cs 文件中的 javascript 变量的值?
【发布时间】:2012-06-20 02:22:54
【问题描述】:

我想访问 java 脚本的返回值,它在一个变量和一个标签中,我想在 .cs 文件中使用它,我该怎么做?我已经在一个变量中获取了 javascript 的输出,还有一个 asp.net 的标签控件......我两种方式都得到了值,但是需要它.cs 文件来将它保存在我的数据 bsae 中,请帮助我。 . 谢谢你

<script language=Javascript>
    function setup_ip(json) {
        var htmlx = " Your IP Address: <b>" + json.IP;
        htmlx += "</b> | Country: " + json.countryName;
        if (json.cityName != "Unknown" || json.regionName != "Unknown") {
            htmlx += " | City: " + json.cityName + " / " + json.regionName;
            var s = " | City: " + json.cityName + " / " + json.regionName;
        } else {
            htmlx += " | Your Time: " + json.localTimeZone;
        }

        $("#myipx").html(htmlx);
     //   $('#<%= lbl1.ClientID %>').text(htmlx);
        $('#<%= lbl1.ClientID %>').text(s);

       // var txtCountry = document.getElementById('<%=lbl1.ClientID %>');        

    }

    $(document).ready(function() {


        EasyjQuery_Get_IP("setup_ip", "full");

    });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div class="inner">
<p class="welcome-message">
<a href="http://www.easyjquery.com/detect-get-clients-ip-address-country-using-javascript-php/"id="topid" title="Javascript, PHP jQuery API Detect Clients IP Address and Country - Geo Location"   >
<asp:Label ID="myipx" runat="server"  ClientIDMode="Static"></a></asp:Label>Detecting Clients IP Address - Country - City</span>
<br />
<asp:Label ID="lbl1" runat="server"  ClientIDMode="Static"></asp:Label>
                </p>
                 <asp:TextBox ID="txtCountry" runat="server"></asp:TextBox>


            <!-- END #footer-texture -->
            </div>

    </div>
    </form>
</body>

【问题讨论】:

标签: javascript asp.net html json c#


【解决方案1】:

要使用此值,您有以下选项:

1.) 由于标签是您的服务器端控件,您可以轻松访问 .cs 文件中的标签文本值,因此此处的 javascript 变量的主要问题是您可以将此值分配给 asp:hidden 字段,以便您也可以在 .cs 中访问它像这样的文件:

<script language=Javascript>
function setup_ip(json) {

$("#hdn").val('your javascript variable');
}
</script>
 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" ScriptMode="Release">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpnlHidden" runat="server">
    <ContentTemplate>
        <input runat="server" type="hidden" id="hdn" value="0" />
    </ContentTemplate>
</asp:UpdatePanel>

cs 文件:

  string str = hdn.value//Where ever you want to store value

2.)另一个选项,您可以在此处使用 pagemethod 并将两个值作为参数传递给 .cs 文件。

javascript:

  PageMethods.getValue(parameter1,parameter2, OnSucceeded, OnFailed);
function OnSucceededID(result, methodName)
{
   //get result back if you want after successfully execution of pagemethod on server side  
}

 function OnFailedID(error, methodName) {
        if (error !== null) {
           alert(error.get_message());
        }
    }

CS 文件:

   [WebMethod(enableSession: true)]
    public static returntype getValue(parameter type parameter1,parameter type parameter2)
    {
        do what you want to do with these values.

    }

希望对你有帮助。

【讨论】:

  • 但 hdn.Value 为 NULL....:(
  • 你在哪里尝试使用这个值?我的意思是你在调用这个之前有没有触发任何回发事件?现在检查更新的答案。试试这个它对你有用
【解决方案2】:

要将客户端信息(JavaScript 结果/变量)发送到服务器,您必须...将信息发送到服务器。 :-) 您可以通过多种方式做到这一点,最适合更新数据库的两种方式是:

  • Ajax - 一种无需刷新页面即可将数据从客户端发送到服务器的方法
  • 表单提交 - 标准表单提交

【讨论】:

    【解决方案3】:

    创建一个服务器端隐藏字段,将 javascript 值放入其中。并在服务器端从隐藏字段中读取值。

    HTML

    <input type="hidden" id="myhidden" runat="server">
    

    在 javascript 中访问

     document.getElementById("myhidden").value="jsvalue";
    

    在后面的代码中访问

    myhidden.Value
    

    您可以使用 ajax 向服务器发送数据。

    【讨论】:

    • var s; document.getElementById("hid").value = s; 好吗????字符串 b,c; protected void Page_Load(object sender, EventArgs e) { c = hid.Value;
    • 好的,现在我如何在 .cs 文件中访问它,字符串 c= hid.value;不工作
    • 字符串 c= hid.Value; V是大写
    【解决方案4】:

    这是 javascript 和 aspx 页面

    <script language="Javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    
    
    <script language="Javascript" type="text/javascript" src="http://api.easyjquery.com/easyjquery.js"></script>
    
    <script language=Javascript>
        function setup_ip(json) {
            var htmlx = " Your IP Address: <b>" + json.IP;
            htmlx += "</b> | Country: " + json.countryName;
            var s = " | City: " + json.cityName + " / " + json.regionName;
    
    
          $("#hdn").val(s);
    
    
            if (json.cityName != "Unknown" || json.regionName != "Unknown") {
                htmlx += " | City: " + json.cityName + " / " + json.regionName;
    
               s = " | City: " + json.cityName + " / " + json.regionName;
            } else {
                htmlx += " | Your Time: " + json.localTimeZone;
            }
    
    
    
    
        }
    
        $(document).ready(function() {
    
    
            EasyjQuery_Get_IP("setup_ip", "full");
    
        });
    
    
    
    function testValue() {
        $('#hdn').val();
    }
        </script>
    
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" ScriptMode="Release">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpnlHidden" runat="server">
        <ContentTemplate>
            <input runat="server" type="hidden" id="hdn" value="0" />
        </ContentTemplate>
    </asp:UpdatePanel>
        <div class="inner">
    <p class="welcome-message">
    <a ><href="http://www.easyjquery.com/detect-get-clients-ip-address-country-using-javascript-php/"id="topid" title="Javascript, PHP jQuery API Detect Clients IP Address and Country - Geo Location"   ></a>
    
                    <asp:TextBox ID="loc" runat="server"></asp:TextBox>
    
                    </p>
    
    <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="setup_ip(json);" onclick="Button1_Click" />
    
                </div>
    
        </div>
        </form>
    </body>
    </html>
    

    这是.cs代码

    protected void Page_Load(object sender, EventArgs e)
        {
    
    
            loc.Text = hdn.Value;
        }
    
    
      protected void Button1_Click(object sender, EventArgs e) 
    { 
    string str = hdn.Value; 
    }
    

    【讨论】:

      【解决方案5】:

      您可以使用 ajax 请求将数据发布到服务器。这相当简单,因为您已经在使用 jquery。请参阅 api 参考 http://api.jquery.com/jQuery.ajax/

      $.ajax({
          type: "POST",
          url: "Page.aspx/method_name",
          data: { name: "some data", id: "some more data" }
      }).done(function( msg ) {
          alert( "Data Saved: " + msg );
      });
      

      对于此示例,在 Page.aspx 的代码隐藏中,您将有一个名为 method_name 的方法,它采用两个参数:字符串名称、字符串 id。该方法将使用[WebMethod] 属性进行修饰。然后,您可以在该方法中随意使用它们。

      【讨论】:

        猜你喜欢
        • 2011-02-12
        • 2011-07-07
        • 1970-01-01
        • 2016-04-15
        • 1970-01-01
        • 2012-07-30
        • 1970-01-01
        • 1970-01-01
        • 2012-08-12
        相关资源
        最近更新 更多