页面即对象
网站最终向用户展现形形色色的网页,这些网页是通过流的形式传输到客户端的。
流
对于Asp.net服务,浏览器的http请求为流的来源,网页响应为流的目标。我们可以通过Response.OutputStream
获取输出流,直接向流内写入组成网页。
字节流
网页html标识符和文字以字节byte
流传输的,一个字节有8bit组成,对于字节的解析对应着字符编码,常用的编码有UTF-8,中文编码GB2312。可以通过静态方法Encoding.UTF8.GetBytes
对字节流或字符编码。
字符流
为了操作的方便,利用装装饰者模式,提供了字符流。开发者只需将字符和编码传入给流即可。
Stream output = Response.OutputStream;
StreamWriter sw = new StreamWriter(output);
sw.Write("Hello World!", Encoding.UTF8);
为了Html标签的输入有流,简单创建一个div
TextWriter txtWrite = Response.Output;
XhtmlTextWriter htmlWrite = new XhtmlTextWriter(txtWrite);
htmlWrite.RenderBeginTag(HtmlTextWriterTag.Div);
htmlWrite.AddAttribute(HtmlTextWriterAttribute.Id, "div");
htmlWrite.RenderEndTag();
控件
html是一个树形结构,asp.net 也是通过一个组成模式的树形结构来拼凑Html页面的,其中每个节点为控件。为了方便操作将控件封装为对象有属性、方法和事件。开发者通过继承开发自己的控件。系统提供的控件有:HtmlContro
l和WebControl
两种基类。
{
protected override string TagName
{
get
{
return "Div";
}
}
protected override void Render(HtmlTextWriter writer)
{
}
}
控件实现的接口
接口名称 | 作用 |
---|---|
INamingContainer | 子控件命名生成规则 |
IAttributeAccessor | 为控件添加或获取属性 |
IPostBackDataHandler | 向服务器回发数据 |
IPostBackEventHandler | 控件回发 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)