我用gridview显示数据库的数据,然后添加一列hyperlinkfiled按钮来传值,将gridview某一行的相应的id用他的get方法传值,传给要跳转的页面,通过xxx.aspx?id={0},将字段设置为id来实现,很容易就把值传出去了,
问题是我想用post方法来实现,以为get的url上会把值显示出来,不安全。还有一种情况是用response.redirect(xxx.aspx?id=变量1&name=变量2);这样的用post如何传值。
我以前从来没有用过post,希望能够写详细点。

解决方案 »

  1.   


    xxx.aspx?id=变量1&name=变量2在跳转的页面这样写就能取到数据了
    Request.QueryString["id"];
      

  2.   

    我知道,我是要用post方法,用get的在url中有显示的,不安全。我现在就是用get,get我知道怎么做。我是不知道用post如何实现。
      

  3.   

    传:Request.Form.Add(string name,string values)
    接:Request.Form[name]
      

  4.   

    用了heatol的提示:
    集合是只读的。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NotSupportedException: 集合是只读的。源错误: 21行出错
    行 19:     {
    行 20:         string dd= RadioButtonList1.SelectedValue.Trim();
    行 21:         Request.Form.Add("oo", dd); 
      

  5.   

    放在Session可以吗?因为如果通过form提交并且跨页面,比较难实现,主要是asp.net中Form属性中Action默认为自己本身页面,如果指定Action的处理页面,postback就会失效。
      

  6.   

    控件放在 form 里  然后 用submit提交  用request.form[]取值 看看
      

  7.   

    我的是变量的传值,变量有很多,,如果都在session是不可能的,
    用get提交的话,那么大家有什么方法把?后面的值隐藏或者加密吗?我没有接触过这个方面,不懂啊。
      

  8.   

    你要是怕不安全,完全可以传递前进行加密,或者用其他传递方式,可以隐藏url地址...
      

  9.   

    回复人:wuhongkai0209() ( 一级(初级)) 信誉:100  2007-07-02 15:27:37  得分:0

    你要是怕不安全,完全可以传递前进行加密,或者用其他传递方式,可以隐藏url地址..------------------我也想,但是怎么样做啊,我不会啊。不然就不问了。
      

  10.   

    //默认密钥向量
    private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
    /// <summary>
    /// DES加密字符串
    /// </summary>
    /// <param name="encryptString">待加密的字符串</param>
    /// <param name="encryptKey">加密密钥,要求为8位</param>
    /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
    public  string EncryptDES(string encryptString, string encryptKey)
    {
    try
    {
    byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
    byte[] rgbIV = Keys;
    byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
    DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
    MemoryStream mStream = new MemoryStream();
    CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
    cStream.Write(inputByteArray, 0, inputByteArray.Length);
    cStream.FlushFinalBlock();
    return Convert.ToBase64String(mStream.ToArray());
    }
    catch
    {
    return encryptString;
    }
    } /// <summary>
    /// DES解密字符串
    /// </summary>
    /// <param name="decryptString">待解密的字符串</param>
    /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
    /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
    public  string DecryptDES1(string decryptString, string decryptKey)
    {
    try
    {
    byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
    byte[] rgbIV = Keys;
    byte[] inputByteArray = Convert.FromBase64String(decryptString);
    DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
    MemoryStream mStream = new MemoryStream();
    CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
    cStream.Write(inputByteArray, 0, inputByteArray.Length);
    cStream.FlushFinalBlock();
    return Encoding.UTF8.GetString(mStream.ToArray());
    }
    catch
    {
    return decryptString;
    }
    }
      

  11.   

    用加密比较麻烦啊,看来,在每个传递都要加密,然后又解密,有隐藏url,或者其他方法吗?
      

  12.   

    要用到什么命名空间吗,我用的是c#,vs2005的web开发。