我之前将javascript的一个值传到aspx.cs中,通过window.document.getElementById("隐藏控件的ID").value=javascript值 进行传送,但是由于javascript值比较长而且包含了二进制码,传到隐藏控件后部分字符串被转义了,请问有其他的方法传送么?非常感谢。

解决方案 »

  1.   

    致 nov30th ,如果编码送至hidden后,可能还会出现hidden控件将其转换为其他的字符?
      

  2.   

    放到asp.net的隐藏的textbox里。
      

  3.   

    还好这是asp.net论坛,因此只要避开“控件无用论”的干扰,你就可以以组件化的方式共享别人的劳动成果。对于隐藏域,你可以在设计代码上写:<asp:HiddenField runat="server" ID="haha"></asp:HiddenField>然后在程序中随时可以对haha对象进行操作,例如反复操作其value属性,注册其ValueChanged事件处理代码等等,这就是asp.net的面向对象的ui设计特点。
      

  4.   

    试一试下面这个页面执行结果,在客户端源代码上找一下look对象,看看它value属性,你会很满意:<%@ Page Language="C#" %>
    <%@ Import Namespace="System.IO" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">    protected void Page_Load(object sender, EventArgs e)
        {
            Look.Value= File.ReadAllText(Server.MapPath(this.Request.Path));
        }</script><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:HiddenField ID="Look" runat="server" />
            <input type="button" value="看看" onclick="alert(document.all('<% =Look.ClientID %>').value);" />
        </form>
    </body>
    </html>
      

  5.   

    在后台获得值的时候,绝对不需要使用 Request.Form 去获得隐藏域的值。HiddenField对象的Value属性可以获得提交的值,而且可以处理编码问题。