使用asp.net 接收html静态页面提交的表单时,接受的函数应使用 this.Request.QueryString["userName"],不能使用string userName = this.Request.Form["userName"].ToString(); 后一种方法会提示“未将对象引用设置到对象的实例 ”。
我的代码如下:
html静态页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login_xhtml.aspx.cs" Inherits="Login_xhtml" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>无标题页</title></head><body> <form action="Welcome_xhtml.aspx" method="get"> 用户名: <input id="userName" name="userName" type="text" style="width: 138px" value="myName" /> 密 码: <input id="password" type="password" name="password" value="1234"/> <br /><br /> <input type="submit" id ="submit" value="登陆" style="width:100px" /> </form></body></html>
接收的asp.net 页面:Welcome_xhtml.aspx
protected void Page_Load(object sender, EventArgs e) { string s=this.Request.QueryString["userName"]; this.Label1.Text = "Welcome " + s; }注意:这里的html页面虽然是xhtml标准,但input 标记中传递参数的属性必须是name 而不是id,必须包含name 否则生成的url中只有?后面不再有任何参数。