|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。asp.net 在用ASP.NET编程时,翻开一个页面通常为经由过程指定超链接地点,挪用指定的页面文件(.html、.aspx)等办法。
可是,假如行将翻开的页面文件的内容是在程序中静态天生,大概是从数据库的内外掏出的,我们怎样把这些内容展现出来呢?
我们最间接的设法是,把这些内容先保留成网页文件,再挪用它。这类办法固然是能够的,但不是最好的办法,由于如许会在Web服务器上天生
很多一时文件,这些文件大概永久也用不着了。
另外一种最好的办法是使用文本格局流,把页面内容静态地展现出来。比方,有一个页面:
……
<iFramesrc=""></iframe>
……
必要用iFrame翻开一个页面,这个页面的内容是静态天生的。我们能够写一个.ashx文件(这里定名为html.ashx)来处置。.ashx文件里完成了IHttpHandler接口类,能够间接天生扫瞄器利用的数据格局。
html.ashx文件内容:
<%@WebHandlerLanguage="C#"Class="Handler"%>
usingSystem;
usingSystem.IO;
usingSystem.Web;
publicclassHandler:IHttpHandler{
publicboolIsReusable{
get{
returntrue;
}
}
publicvoidProcessRequest(HttpContextcontext)
{
//Setuptheresponsesettings
context.Response.ContentType="text/html";
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.BufferOutput=false;
Streamstream=null;
stringhtml="<html><body>乐成:testoftxt.ashx</body></html>";
byte[]html2bytes=System.Text.Encoding.ASCII.GetBytes(html);
stream=newMemoryStream(html2bytes);
if(stream==null)
stream=newMemoryStream(System.Text.Encoding.ASCII.GetBytes("<html><body>getNothing!</body></html>"));
//Writetextstreamtotheresponsestream
constintbuffersize=1024*16;
byte[]buffer=newbyte[buffersize];
intcount=stream.Read(buffer,0,buffersize);
while(count>0)
{
context.Response.OutputStream.Write(buffer,0,count);
count=stream.Read(buffer,0,buffersize);
}
}
}
html.ashx文件中起首把string字符串转化为字节(byte)数组,然后再天生内存中的MemoryStream数据流,最初写到OutputStream工具中,显现出来。
如许以来,我们就能够经由过程<iFramesrc="html.ashx"></iframe>来展现静态天生的页面,显现“乐成:testoftxt.ashx”的网页内容。html.ashx文件中stringhtml="<html><body>乐成:testoftxt.ashx</body></html>";一句中,变量html的内容完整能够从数据库中失掉(事前把一个html文件内容保留在数据库中)。
我也不知道,我原来理解的,NET就是C++编程,只是与JAVA相对,呵呵。以为.ET就是高级C++编程。 |
|