3_Server
Server
表示当前页面的服务器对象
是HttpServerUtility类的实例,HttpServerUtility的父类Page
常用方法
1、HtmlEncode();对字符串进行html编码
比如:有字符串是这样的:
string str = "<span style='color: red'>hello world</span><br />";
//前台页面原样输出就得编码,不然Response.write方法就会把它当作html元素输出
str = Server.HtmlEncode(str);//对字符串进行html编码,
//编码之后:<span style='color: red'>hello world</span><br />
Response.Write(str);//在前台页面输出的时候就是原格式
2、HtmlDecode();对字符串进行html解码,解码为html元素
//html编码之后的格式
string str = " < span style = 'color: red'>hello world</span><br />";
str = Server.HtmlDecode(str);//解码//<span style='color: red'>hello world</span><br />
Response.Write(str); //在前台页面输出的时候就是html标签格式
3、UrlEncode();对url编码
string str2 = "One.aspx?name=张三";
str2 = Server.UrlEncode(str2);//对字符串进行html编码
Response.Write(str2);//在前台页面输出的结果:One.aspx%3fname%3d%e5%bc%a0%e4%b8%89
4、UrlEncode();对url编码
string str2 = Server.UrlDecode("One.aspx%3fname%3d%e5%bc%a0%e4%b8%89");//解码
Response.Write(str2); //在前台页面输出的结果:One.aspx?name=张三
4、MapPath();将虚拟路径转换为实际可用的路径
// @"~\Models\test.txt":如果直接这样用相对路径的话,它找不到,
string path = @"~\Models\test.txt";
path = Server.MapPath(path);
5、Transfer();
在服务器端停止对该页的执行(不会把本页面的内容返回给自己,只把url加载的页面返回回来),根据url加载指定的页面,如果是submit提交的请求,地址栏不会变。
地址栏不会发生变化,是因为,这是在服务器端响应返回了一个新页面给客户端,客户端不知道你是一个新页面,而且客户端又是通过submit提交给自己的页面的,但是它会停止对该页面的执行,所以它仅仅只会把新的页面的html返回回去,自己的html不会返回,所以用户不能看到先前的html页面里的元素了。所以通过这个方法使用问号传参数在地址栏不会显示传递的参数
Server.Transfer("~/Models/One.aspx");
6、Execute();
在当前上下文中执行指定的处理程序,服务器端不会停止对该页的执行(会把本页面的内容和url加载的页面返回回来),根据url加载指定的页面。
和Transfer相反,由于服务器端不会停止对该页的执行,所以会将根据url加载指定的页面和自己原来的页面都返回回去,所以用户可以看到之前页面上的内容 。
和Transfer共同点:都是在服务器端实现重定向
Server.Execute("~/Models/One.aspx");
Execute()、Transfer()和Response.Redirect()的区别:
Redirect在客户端进行跳转,跳转地址栏会变化,相当于服务器端给客户端发了一个响应,让客户端自己去访问另一个页面,所以客户端知道要重新定向,
Execute()和Transfer()相当于是在服务器里进行跳转,客户端不知道,所以地址栏不会变,而Execute和Transfer的区别就是一个会停止对当前页面的执行 ,一个会保留对当前页的执行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构