• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ASP.NET之Response.Write说

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

对于大牛们看到这篇文章千万别喷我哈。

首先我想说最好不要在ASP.NET中用Response.Write()输出一段文字或者类似alert的东西,因为它会把内容放在body之外,html最上面,破坏了整个html。可以用ClientScriptManager的方法来实现这个功能。

其次想说aspnet中Response.Write的实现方式,可能不一定正确,我是这么理解的。先看段代码

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form2" runat="server">
    <div>
         fdsfdfdsfd
    </div>

    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    </form>
</body>
</html>
 protected void Button1_Click(object sender, EventArgs e)
 {
        Response.Write("test");
 }

当你点击button时,页面将变成

那如何才能只输出test呢,答案是

Response.Write("test");
Response.End();

问了下做java的人,貌似不是这样,直接write就行。看来ms又帮你封装了层东西。。。应该就是在页面render的时候,填入response东西了

 

 MSDN解释:During the rendering phase, the page calls the Render method for each control, providing a text writer that writes its output to the OutputStream of the page's Response property.

如何验证Close的作用呢

 protected void Button1_Click(object sender, EventArgs e)
 {
        Response.Write("test");
        Response.End();
 }

 protected override void Render(HtmlTextWriter writer)
 {
        base.Render(writer);
 }

在两个事件第一行加断点,根据webform page life cycle,Response.End()后不再调用Render了。所以只输出test,原来的html就不会输出了。

Response.End() 使 Web 服务器停止处理脚本并返回当前结果。文件中剩余的内容将不被处理。对这句话有了新的理解,以前的理解显然不太对。

题外话,对Response的自定义处理的话可以通过Response.Filter来控制,类似于HttpModule。

 

如有错误,望大家指正。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.netmvc网站的发布与IIS配置发布时间:2022-07-10
下一篇:
asp.net书籍发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap