
.net 未将对象引用设置到对象的实例
我是初学者,请教各位:我在一个htm文件中给一个text控件id名为txtusername赋值htm文件用的是post方式:<formmethod="post"actio...
我是初学者,请教各位:
我在一个htm文件中给一个text控件id名为txtusername赋值
htm文件用的是post方式:
<form method="post" action="WebForm1.aspx">
在WebForm1.aspx文件中显示:
string username = Request.["txtusername"].ToString();
string username = Request.Form.Get("txtusername").ToString();
Response.Write(username);
如果有ToString(),则出现“未将对象引用设置到对象的实例”,去掉ToString(),则该页面不显示htm文件中text控件的内容。
谢谢各位了。我上午试了各种方式连params都用上了,也没好使。谁知下午我以为htm文件和aspx文件之间不能用这种方式传递参数时,随便运行了一下后忽然程序执行了那部分代码,实现了response.write功能,于是我又将集中获取参数方式都试了一边(如:Request[" "].ToString();request.form.get(" ").tostring;request.params[" "].tostring;),全都好使了。呵呵是不是很怪???我真的什么都没动过。还是要谢谢各位热心的朋友们。如有照顾不到的,请见谅! 展开
我在一个htm文件中给一个text控件id名为txtusername赋值
htm文件用的是post方式:
<form method="post" action="WebForm1.aspx">
在WebForm1.aspx文件中显示:
string username = Request.["txtusername"].ToString();
string username = Request.Form.Get("txtusername").ToString();
Response.Write(username);
如果有ToString(),则出现“未将对象引用设置到对象的实例”,去掉ToString(),则该页面不显示htm文件中text控件的内容。
谢谢各位了。我上午试了各种方式连params都用上了,也没好使。谁知下午我以为htm文件和aspx文件之间不能用这种方式传递参数时,随便运行了一下后忽然程序执行了那部分代码,实现了response.write功能,于是我又将集中获取参数方式都试了一边(如:Request[" "].ToString();request.form.get(" ").tostring;request.params[" "].tostring;),全都好使了。呵呵是不是很怪???我真的什么都没动过。还是要谢谢各位热心的朋友们。如有照顾不到的,请见谅! 展开
4个回答
展开全部
看下文本框的name属性是不是txtusername,因为这边接受到的是null
看了下你上面和别人的问答,给你解释下..服务器根据表单键名获取对应的值,此时用Request对象的Forms集合或者QueryStrings集合..而表单项提供键名是用name属性,比如<input type="text" name="txtusername" value="test" />,用id属性是不行的..
再给你解释下你补充问题的那点,session是服务器脚本(asp,asp.net,php,java)的内置对象,html中是无法使用的..
看了下你上面和别人的问答,给你解释下..服务器根据表单键名获取对应的值,此时用Request对象的Forms集合或者QueryStrings集合..而表单项提供键名是用name属性,比如<input type="text" name="txtusername" value="test" />,用id属性是不行的..
再给你解释下你补充问题的那点,session是服务器脚本(asp,asp.net,php,java)的内置对象,html中是无法使用的..
更多追问追答
追问
谢谢了,终于明白了session的使用方式了,在名字中添加了name="txtusername",可还是不好使。在.htm中用加上runat="server"才好使吗?
追答
html中添加runat="server"是不行的,这个只能在aspx中用..如果你准备用Request.Form集合获取值,html中要设置method为post,比如
建议你还是先学好基础再研究这些,其实看看书,这种问题根本就不是问题..你与其花这么多时间在百度等别人回答,不如抽1/10的时间把相关知识看下..这些都是基础,没基础要做进一步的编程是很困难的
展开全部
我遇到这个问题一般都是因为空值问题
你在代码外面加个空值判断
if(Request.Form.Get("txtusername")!=null)
{
//你的代码
}
你在代码外面加个空值判断
if(Request.Form.Get("txtusername")!=null)
{
//你的代码
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应为你Request.["txtusername"]传过来的值是null值,这个值不能转化成字符串,
你可以改
if(Request.["txtusername"]!=null)
{
string username = Request.["txtusername"].ToString();
}
其他的类似,
你可以改
if(Request.["txtusername"]!=null)
{
string username = Request.["txtusername"].ToString();
}
其他的类似,
更多追问追答
追问
不好使呀!
protected void Page_Load(object sender, EventArgs e)
{ if (Request["txtusername"] != null && Request["txtuserpwd"] != null)
{ string username = Request["txtusername"].ToString();
string userpwd = Request["txtuserpwd"].ToString();
Response.Write("用户名:" + username + "口令:" + userpwd); }
追答
你现在还报错么,还是没有输出来数据,没数据就对了,因为没有数据传入进来,还报“将对象引用设置到对象的实例 ”这个错误么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
txtusername为null,应有个判断再使用该变量的toString()方法。
追问
首先name的id属性没错,其次我每次都会给name赋值的,还能是null吗?
追答
如果你确实每次都对name赋值了,且数据回传到了服务端,就不会是null了。
其实这是一个规范化编程的问题,这样的异常通常是要专门处理的,有时候它出现几乎预料不到。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询