ASP.NET里面的response的原理,突然发现有点不理解了

aion1998 2015-09-08 05:01:55
这是我html页面的jq代码:
//post传递参数并且接收返回值
function postMsg(){

$.ajax({
type: "post",
url: "Default.aspx",
data: {
name: 'newcell',
pwd: 123456
},
success: function (data) {
alert(data); //这里的data就是后台返回的数据

}
});
}

点击一个按钮之后触发这个事件,然后传递参数过去, success: function (data) {}并且接收返回的数据以弹窗显示出来。


这是我ASP.NET 的代码:
Response.Write(“你好”);

这里我就没有做接收参数,而是直接返回一个”你好“

可是html页面接收了返回的数据后显示出来的值是这样的


...全文
322 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
likevs 2015-09-09
  • 打赏
  • 举报
回复
8楼正解 你的Dafult.aspx页面的HTML源码不能保留
於黾 2015-09-09
  • 打赏
  • 举报
回复
引用 16 楼 aion1998 的回复:
感谢楼上的回答哈,这里就不一一回复了,只是突然遇到了就有点好奇response.write 的原理所以来询问下。 正式开发中当然不会这样做,也会选择ashx来操作。 另外有个与话题无关的东西,我刚来csdn怎么给分...
你点了结贴之后,每个楼层自然会出现文本框
aion1998 2015-09-09
  • 打赏
  • 举报
回复
引用 14 楼 skyandcode 的回复:
正如sp所说的,虽然 Response.End() 可以解决你的问题(输出“你好”);但程序还是创建了页面对象,并且走了页面生命周期直到调用Response.End, Response.End 只不过提前结束输出,不让页面对象触发后面的事件(例如 Render 等),这样就不会输出aspx页面的html而已。 遇到问题后,你就会考虑用ashx来处理了; ashx 用多了,你又会遇到新的问题,这就是学习的过程。
谢谢,ashx现在很少用...因为现在我前端后端一手包,前端花费的时间还比较多。
aion1998 2015-09-09
  • 打赏
  • 举报
回复
感谢楼上的回答哈,这里就不一一回复了,只是突然遇到了就有点好奇response.write 的原理所以来询问下。 正式开发中当然不会这样做,也会选择ashx来操作。 另外有个与话题无关的东西,我刚来csdn怎么给分...
江南小鱼 2015-09-09
  • 打赏
  • 举报
回复
Response.Write是整个aspx页面输出,和神马ashx没关系。
hwyqy 2015-09-08
  • 打赏
  • 举报
回复
确实是这样的,ASPX总规要输出原来的内容,加上Response.End就行了 当然,使用ashx最好,但是如果小程序,连接数不多,用aspx也无伤大雅。等楼主写中大型程序时,这些问题都不是问题了
skyandcode 2015-09-08
  • 打赏
  • 举报
回复
正如sp所说的,虽然 Response.End() 可以解决你的问题(输出“你好”);但程序还是创建了页面对象,并且走了页面生命周期直到调用Response.End, Response.End 只不过提前结束输出,不让页面对象触发后面的事件(例如 Render 等),这样就不会输出aspx页面的html而已。 遇到问题后,你就会考虑用ashx来处理了; ashx 用多了,你又会遇到新的问题,这就是学习的过程。
爱情哎哎 2015-09-08
  • 打赏
  • 举报
回复
这个问题有点深奥,改天给你解决
  • 打赏
  • 举报
回复
aspx输出的整个页面对象。即使你写了 Response.End() 语句,可是你在服务器端创建一个页面对象,这是多么“沉重”啊?! 服务器端应该使用 ashx 这样的轻量级的直截了当的数据服务,而不要创建 asp.net 页面对象。
ajianchina 2015-09-08
  • 打赏
  • 举报
回复
你其实只需要一个“零件”来解决这个问题,可你弄来一个“部件”,将零件拆出来用,其他都扔到垃圾桶了,这个问题你继续下去的话不是end扔掉的问题,而是朝着错误方向根本就停不下来。 大家都知道这里应该使用ashx一般处理程序,但被你引导到为何输出html的问题上来了。

function postMsg(){
$.ajax({
	type: "post",
	url: "Default.ashx",//是ashx
	data: {
		name: 'newcell',
		pwd: 123456
	},
	success: function (data) {
		alert(data); 
   
	}
});
}

//ashx的处理
public void ProcessRequest (HttpContext context) 
{
	context.Response.ContentType = "text/plain";
	context.Response.Write("你好");
}
wangbinfei007 2015-09-08
  • 打赏
  • 举报
回复
url: "Default.aspx",如果使用异步传输并且只想返回简单字符串而非整个html页面的话建议使用.ashx一般处理页面
  • 打赏
  • 举报
回复
下面的内容是Default.aspx的内容 如果你后面不希望返回任何内容,可以在紧跟下面那一段代码 Response.Write(“你好”); Response.End()
右斗者 2015-09-08
  • 打赏
  • 举报
回复
引用 5 楼 aion1998 的回复:
[quote=引用 4 楼 Z65443344 的回复:] 你必须知道,不管是ASP.NET还是js,最终都是生成html让IE解析并显示 说白了一个在客户端操作html,一个在服务端生成html,如此而已
好像有点明白了,就是要输入response.End停止吗?[/quote] 有2种解决方式,一种是把你的default.aspx页面代码都清干净只剩下<%@ Page Language="C#" CodeBehind="default.aspx.cs" Inherits="default" %>;再一种是在cs代码中加上Response.Clear();Response.Write(“你好”);
Hello World, 2015-09-08
  • 打赏
  • 举报
回复
输出之前可以用Response.Clear();清除内容, 输出之后用Response.End();终止后面的内容输出 建议使用ashx
aion1998 2015-09-08
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
你必须知道,不管是ASP.NET还是js,最终都是生成html让IE解析并显示 说白了一个在客户端操作html,一个在服务端生成html,如此而已
这个csdn是可以给你们分的是吧,咋格尼
aion1998 2015-09-08
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
你必须知道,不管是ASP.NET还是js,最终都是生成html让IE解析并显示 说白了一个在客户端操作html,一个在服务端生成html,如此而已
好像有点明白了,就是要输入response.End停止吗?
於黾 2015-09-08
  • 打赏
  • 举报
回复
你必须知道,不管是ASP.NET还是js,最终都是生成html让IE解析并显示 说白了一个在客户端操作html,一个在服务端生成html,如此而已
於黾 2015-09-08
  • 打赏
  • 举报
回复
目测跟你的alert(data);有关 你本来就是做了个弹窗输出的文本,而不是html代码 而Response.Write则将你要输出的文字插入到这段文本前面了
於黾 2015-09-08
  • 打赏
  • 举报
回复
Response.Write 只是将一个字符串输出到html中了,至于输出的位置,不是很确定 除非你输出的是一段js脚本,这样它具体在html的什么地方其实都无所谓了 如果你不调用Response.End,那么它会继续输出html,也就是将ASP.NET本来应该返回的html也继续输出出来 至于你弹出的网页里显示的是代码而不是正常的网页,说明你后台处理结果有问题,IE无法解析
aion1998 2015-09-08
  • 打赏
  • 举报
回复


前面图片上传失败,重新上传一次

62,041

社区成员

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

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

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

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