ASP.Net两个页面之间为什么无法传值?
目前有两个简单的页面:Default.aspx(表单,用户名和密码)、display.aspx(显示从另一个页面获取的用户名和密码)Default.aspx页面代码:<b...
目前有两个简单的页面:Default.aspx(表单,用户名和密码)、display.aspx(显示从另一个页面获取的用户名和密码)
Default.aspx页面代码:
<body>
<form id="form1" action="display.aspx" method="post" runat="server">
<div>
用户名:<asp:TextBox ID="userTxt" runat="server" MaxLength="10"></asp:TextBox><br />
密码:<asp:TextBox ID="pwdTxt" runat="server" TextMode="Password" MaxLength="6"></asp:TextBox><br />
<br />
<asp:Button ID="Button1" runat="server" Text="Login" OnClick="Button1_Click" />
</div>
</form>
</body>
display.aspx.cs代码:
public partial class display : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string userName = "";
string userPassword = "";
userName = Request["userTxt"].ToString();
userPassword = Request["pwdTxt"].ToString();
Response.Write(userName + "<br>");
Response.Write(userPassword);
}
}
运行的时候报错,这是为什么?
报错信息截图 展开
Default.aspx页面代码:
<body>
<form id="form1" action="display.aspx" method="post" runat="server">
<div>
用户名:<asp:TextBox ID="userTxt" runat="server" MaxLength="10"></asp:TextBox><br />
密码:<asp:TextBox ID="pwdTxt" runat="server" TextMode="Password" MaxLength="6"></asp:TextBox><br />
<br />
<asp:Button ID="Button1" runat="server" Text="Login" OnClick="Button1_Click" />
</div>
</form>
</body>
display.aspx.cs代码:
public partial class display : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string userName = "";
string userPassword = "";
userName = Request["userTxt"].ToString();
userPassword = Request["pwdTxt"].ToString();
Response.Write(userName + "<br>");
Response.Write(userPassword);
}
}
运行的时候报错,这是为什么?
报错信息截图 展开
展开全部
我以前也碰到过这个问题 现在给出 原因 :我的问题是 用了jquey $ajax 导致了 一次提交了两个form的问题 ($ajax 也是一次form 提交 )
希望对你有帮助
这个问题的根本原因 是页面 无法解码 viewstate
希望对你有帮助
这个问题的根本原因 是页面 无法解码 viewstate
更多追问追答
追问
但是我的Default.aspx页面中只有一个form,没使用Jquery $ajax
以前使用ASP的时候从来没有出现过此类问题,换成ASP.Net反而感觉出现问题多了,这是什么原因呢?我有时甚至想完全照搬ASP的方法算了,但觉得这样的话,我学习、使用ASP.Net的目的又在哪里呢?
追答
先说说你的问题吧
通常的做法是这样的
无标题页
用户名:
密 码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace WebApp
{
public partial class postdate : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string userName = "";
string userPassword = "";
userName = Request["userTxt"].ToString();
userPassword = Request["pwdTxt"].ToString();
Response.Write(userName + "");
Response.Write(userPassword);
//在这里进行处理事件(例如登陆)
}
}
}
展开全部
如果需要传值到另一个页面 不需要使用服务器控件的啊
<form id="form1" action="display.aspx" method="post">
<div>
用户名:<input type="text" ID="userTxt" MaxLength="10" /><br />
密码:<input type="password" ID="pwdTxt" MaxLength="6" /><br />
<br />
<input type="submit" value="提交" name="submit" id="submit">
</div>
</form>
<form id="form1" action="display.aspx" method="post">
<div>
用户名:<input type="text" ID="userTxt" MaxLength="10" /><br />
密码:<input type="password" ID="pwdTxt" MaxLength="6" /><br />
<br />
<input type="submit" value="提交" name="submit" id="submit">
</div>
</form>
追问
这样的写法不就和ASP一模一样了吗?
展开全部
我晕,虽然我不知道你想做什么,但是,.NET不需要像ASP那样传值到其它页面处理吧?如果非要这样写,那直接用回ASP好了,这样做糟蹋了.NET。直接在本页面的cs代码处添加处理方法就是了。
展开全部
我想真正的问题你可能没贴出来。至少我在这上面看不出问题。POST 传值用Request.Form["Name"] 接收。你可以看看这段程序生成的HTML代码是什么。别被控件所迷惑了。搞的什么都不懂!
追问
用Request.Form还是报错,在Default.aspx.cs中我没有添加任何代码,因为这个页面只是用作表单,接收的数值我的想法是全部交给display.aspx获取并显示,但目前diplay.aspx无法获取到
展开全部
问题在于,服务端控件的ID和客户端形成的name有时候是不一致的,你要获取传过来的参数,要看客户端生成html之后的标签里面name是什么,而不是看后台控件的ID是什么,两者会不一样的。
2012-01-31
展开全部
userName = Session["userTxt"].ToString();
userPassword =Session["pwdTxt"].ToString();
放入session传过去
userPassword =Session["pwdTxt"].ToString();
放入session传过去
追问
晕,还是不行,我倒觉得不是用Session和Request的问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询