asp.net 关于request对象获取值的问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 21:42:29
我用一个html页面给一个aspx页面传值,表单提交方法是post,当我在aspx页面获值的时候获取不到值;我用的方法是:
string userPwd = Request.Form.Get("test2").ToString();
我以为是创建对象的实例而出错了,所以又使用了new关键字:
string userPwd = new string();
结果还是不行,显示错误:“String”方法没有采用“0”个参数的重载

我是个新手,希望大家能帮帮我,谢谢了!
用中括号
string userPwd =request.form["test2"];
后面不用加ToString()
_____________________________________________________
不加tostring()的话,运行是成功了,但是没有值显示!

-------------------------------------------------------
谢谢楼下的几位,谢谢你们,看了第四位的答案,我突然想到aspx的postback的默认属性是true,所以就会发生运行成功了但是没有值显示了.

但是还有一个问题,为什么别人加了toString();能运行成功,而我却加了运行不成功了,不加反而成功了.

用中括号
string userPwd =request.form["test2"];
你没有显示输出怎么能看到值
加上
Response.Write(userPwd);

如果你是做项目的话,你不能把上面读取的值放在IsPostBack中
if (!IsPostBack)
{
//不能放在里面
}

要放在
string userPwd =request.form["test2"];
if (!IsPostBack)
{
//不能放在里面
}

这样你做开发的时候其它地方才能调用数据,不然会显示没有数据

继续解答,因为你用的是POST传递值,当它没有值的时候,也就是接收不到发出的数据,所以它没值的情况下,你用TOString()来转换肯定不行,它当然会提示出错,因为没接到任何信息!GET方法就不会出这个问题,因为get.aspx?id=1都是从数据库读出来的,不可能出现ID没有值的情况!除非你再加一个判断

string userPwd = Request.QueryString["test2"];
可以的,我就是这样做的,不过不是从Html页面传的值,是ASPX页面上的一个超链接,比如上个页面上的超链接是abc.aspx?test2=3,那获得test2值的页面上就用string userPwd = Request.QueryString["test2"];就可以取得test2的值是3,如果要把这值显示出来的话,可以在这个页面上加一个Label控件,假如ID=Label1,在CS里面可以这样写:Label1.Text=userPwd.ToString();
这样就把userPwd值显示出来了。当然你也可以再加个判断,
if(userPwd==null)
{
//Res