请教一下,关于POST传参的问题

siaosa 2011-09-16 08:01:41
为什么以下代码执行之后,Default.aspx不显示出来呢?
ASCIIEncoding code = new ASCIIEncoding();
string postData = "aa=iceapple.net&bb=yibin.net"; //这是要post的数据
byte[] data = code.GetBytes(postData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:7662/www/Default.aspx");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded"; //这里的ContentType很重要!
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream()) //获取数据流,该流是可写入的
{
stream.Write(data, 0, data.Length); //发送数据流
stream.Close();
}
要怎样Default.aspx才能显示出来?
...全文
226 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2011-09-16
  • 打赏
  • 举报
回复
你怎么显示跟你贴的代吗没有关系,你问问题都没问道点子上。

你代码去访问一个页面,怎么不显示出来?你要它显示在哪?

using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length); //发送数据流
stream.Close();
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(response.GetResponseStream());
Response.Write(sr.ReadToEnd()); //这就显示出来了。
}
siaosa 2011-09-16
  • 打赏
  • 举报
回复
zyloveyrf
Response.Write(html); //html是得到的Default.aspx的HTML代码
报错:Microsoft JScript 运行时错误: “aspxAddDisabledItems”未定义
萧炎 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 siaosa 的回复:]
HeddaZ
我按你的获取HTML的方式,但这方式有个问题,如果Default.aspx中有第三方控件就报错
例如
直接运行Default.aspx没问题不报错, 如果按得到HTML的方式
Response.Write(html); //html是得到的Default.aspx的HTML代码
报错Microsoft JScript 运行时错误: “aspxAddDi……
[/Quote]
LZ这个是获取Default.aspx的源代码?
获取源代码 会爆报错Microsoft JScript 运行时错误:....这种错误么?
siaosa 2011-09-16
  • 打赏
  • 举报
回复
我问怎么显示Default.aspx, 他说接收bb参数,并显示bb参数
无语
红魔大卫 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 net_lover 的回复:]
引用 2 楼 siaosa 的回复:

答非所问了吧




Request.Form["bb"]是接收方法,怎么显示都可以啊
Response.Write(Request.Form["bb"])
就是输出



你明白你自己在干啥吗?


using (Stream stream = request.GetRequestStream()) //获取数据流,……
[/Quote]
孟哥的回答很有杀伤力
siaosa 2011-09-16
  • 打赏
  • 举报
回复
net_lover
我问怎么显示Default.aspx, 你说接收bb参数,并显示bb参数

MessageBox.Show不能在asp.net里使用
孟子E章 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 siaosa 的回复:]

答非所问了吧
[/Quote]



Request.Form["bb"]是接收方法,怎么显示都可以啊
Response.Write(Request.Form["bb"])
就是输出



你明白你自己在干啥吗?


using (Stream stream = request.GetRequestStream()) //获取数据流,该流是可写入的
{
stream.Write(data, 0, data.Length); //发送数据流
stream.Close();
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(response.GetResponseStream());
MessageBox.Show(sr.ReadToEnd());
}
siaosa 2011-09-16
  • 打赏
  • 举报
回复
我是想在一个新的窗口中显示Default.aspx不知道要怎么弄
siaosa 2011-09-16
  • 打赏
  • 举报
回复
HeddaZ
我按你的获取HTML的方式,但这方式有个问题,如果Default.aspx中有第三方控件就报错
例如
直接运行Default.aspx没问题不报错, 如果按得到HTML的方式
Response.Write(html); //html是得到的Default.aspx的HTML代码
报错Microsoft JScript 运行时错误: “aspxAddDisabledItems”未定义
大飞飞虫 2011-09-16
  • 打赏
  • 举报
回复
HttpWebRequest 是指的后台提交,你没有一处会要求DEFAULT.ASPX显示出来,它提交完数据后,自然不会显示出来。

2个方法:
1,不要用 HttpWebRequest 后台提交
2,获取你的request的response,一般得到的是HTML,你自己把HTML呈现出来即可
siaosa 2011-09-16
  • 打赏
  • 举报
回复
答非所问了吧
孟子E章 2011-09-16
  • 打赏
  • 举报
回复
Request.Params["aa"]
Request.Params["bb"]

或者
Request.Form["aa"]
Request.Form["bb"]
小笨熊 2011-09-16
  • 打赏
  • 举报
回复
孟哥很牛的,lz表述不清。。。
孟子E章 2011-09-16
  • 打赏
  • 举报
回复
完整的例子
<%@ Page Language="C#" %>

<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">


protected void Page_Load(object sender, EventArgs e)
{
ASCIIEncoding code = new ASCIIEncoding();
string postData = "aa=iceapple.net&bb=yibin.net"; //这是要post的数据
byte[] data = code.GetBytes(postData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:45912/WebSite1/C.aspx");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded"; //这里的ContentType很重要!
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length); //发送数据流
stream.Close();
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(response.GetResponseStream());
TextBox1.Text = Server.HtmlEncode(sr.ReadToEnd());
sr.Close();
}

Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "OpenHtml()", true);
}


</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script type="text/javascript">
function OpenHtml() {
w = window.open();
w.document.open();
w.document.write(document.getElementById('<%=TextBox1.ClientID%>').value);
w.document.close();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server" Style="display: none"></asp:TextBox>
</form>
</body>
</html>


c.aspx
<%@ Page Language="C#" EnableEventValidation="false" EnableViewState="true" %>

<script runat="server">

protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Request.Form["aa"]);
}
</script>

前提是你需要先关闭窗口拦截程序
孟子E章 2011-09-16
  • 打赏
  • 举报
回复
那个页面返回是的html代码,不是js代码。
当然可以在新窗口显示啊
siaosa 2011-09-16
  • 打赏
  • 举报
回复
net_lover
按您的方法一样报错:
Microsoft JScript 运行时错误: “aspxAddDisabledItems”未定义

有没有办法可以让sr里的内容在一个新的窗口里显示出来?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧