使用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=" 138px" value="myName" />
密 码:
<input id="password" type="password" name="password" value="1234"/> <br /><br />
<input type="submit" id ="submit" value="登陆" style="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中只有?后面不再有任何参数。