风舞残阳 2008-4-2 13:43
ASP.NET热点问题解答14个
ASP.NET热点问题解答14个 1、ASP.NET能在那些[wiki]系统[/wiki]中运行?
目前,ASP.NET还只能奔跑在[wiki]微软[/wiki]的Windows2000、Windows[wiki]XP[/wiki]和Windows2003的系统中,并且需要微软InternetInformationServer(IIS)的支持,微软原计划要让WindowsNT4.0也支持ASP.NET,但可能微软是有些[wiki]技术[/wiki]问题或市场考虑,还没有实现NT下的ASP.NET的支持。
2、在一个ASPX文件中是否可以使用一种以上的语言?
答案让你有点失望,虽然微软的提供了公共语言运行[wiki]环境[/wiki](CLR,CommonLaguageRuntime),实现了多种[wiki]编程[/wiki]语言间的紧密集成,可以允许你从一个VB[wiki]对象[/wiki]中导出C#所需的对象来,但一个ASPX文件中只能用一种语言,正如你不能在VB.NET中使用C#的语法一样。
3、ASPX文件的[wiki]服务器[/wiki]端脚本支持那些语言?
目前,ASPX文件只支持C#、VisualBasic.NET、Jscript.NET和J#,但是你使用code—behind(代码分离)的方法创建一个独立代码文件,你就可以使用任何.NET编译器支持的语言来实现功能了。
4、在Global.asax文件中能使用code—behind(代码分离)技术吗?
当然可以了,例如:
Global.asax:
和使用code—behind(代码分离)技术
Global.asax:
MyApp.vb:
ImportsSystem.Web
ImportsSystem.Web.SessionState
PublicClassMyApp
SubApplication_Start(ByValsenderAsObject,ByValeAsEventArgs)
Application("online_session")=0
EndSub
SubSession_Start(ByValsenderAsObject,ByValeAsEventArgs)
Application.Lock()
Application("online_session")=CInt(Application("online_session"))+1
Application.UnLock()
EndSub
SubSession_End(ByValsenderAsObject,ByValeAsEventArgs)
Application.Lock()
Application("online_session")=CInt(Application("online_session"))-1
Application.UnLock()
EndSub
EndClass
5、我能否看到ASPX文件在ASP.NET中生成的代码吗?
可以看到的,当你的ASPX文件中包含命令或Web.config中声明了时,你就可以在系统目录下的Microsoft.NET\Framework\v1.0.nnnn\TemporaryASP.NETFiles中找到ASPX文件在ASP.NET下生成的文件。
6、在ASPX文件中如何注释呢?
同ASP文件中的方法一样。
7、ASPX文件中是否可以存在一个以上服务器端Form标记?
不可以
8、我可以在Web窗体中使用自定义数据[wiki]类[/wiki]型吗
可以,你可以把包含自定义数据类型的DLL文件放在[wiki]程序[/wiki]根目录下的BIN目录中,ASP.NET会在数据类型引用时,装载DLL文件的。
9、我能在Global.asax文件中触发那些事件?
Application对象创建和结束时所触发的事件有
%26#61548;Application_Start
%26#61548;Application_End
Session对象创建和结束时所触发的事件有
%26#8226;Session_Start
%26#8226;Session_End
对程序有请求发生时触发的事件有(按发生顺序排列)
%26#8226;Application_BeginRequest
%26#8226;Application_AuthenticateRequest
%26#8226;Application_AuthorizeRequest
%26#8226;Application_ResolveRequestCache
%26#8226;Application_AcquireRequestState
%26#8226;Application_PreRequestHandlerExecute
%26#8226;Application_PostRequestHandlerExecute
%26#8226;Application_ReleaseRequestState
%26#8226;Application_UpdateRequestCache
%26#8226;Application_EndRequest
当有程序有错误发生时触发的事件有
%26#8226;Application_Error
%26#8226;Application_Disposed
10、Web控件是否支持样式表(CSS)呢?
Yes.AllWebcontrolsinheritapropertynamedCssClassfromthebaseclassSystem.Web.UI.WebControls.WebControl.ThefollowingexampledefinesaCSSclassnamedInputandusesittomodifyaTextBoxcontroltodisplaytextinred10-pointVerdana[wiki]type[/wiki]:
支持,所有的Web控件都从基类System.Web.UI.WebControls.WebControl中继承了一个叫做CssClass的属性。
例如:
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;style%26gt;
.Input{font:10ptverdana;color:red;}
%26lt;/style%26gt;
%26lt;/head%26gt;
%26lt;body%26gt;
%26lt;formrunat="server"%26gt;
%26lt;asp:TextBoxCssClass="Input"RunAt="server"/%26gt;
%26lt;/form%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
11、在ASPX文件中默认导入那些名称[wiki]空间[/wiki]?
ASPX默认导入的名称空间可以直接引用了,使用其它的名称空间就的自行导入了。
默认名称空间
%26#61548;System
%26#61548;System.Collections
%26#61548;System.Collections.Specialized
%26#61548;System.Configuration
%26#61548;System.Text
%26#61548;System.Text.RegularExpressions
%26#61548;System.Web
%26#61548;System.Web.Caching
%26#61548;System.Web.Security
%26#61548;System.Web.SessionState
%26#61548;System.Web.UI
%26#61548;System.Web.UI.HtmlControls
%26#61548;System.Web.UI.WebControls
12、我是否可以自己创建服务器控件呢?
可以,创作您自己的ASP.NET服务器控件很容易。创建简单的自定义控件时,您所要做的只是定义从System.Web.UI.Control派生的类并重写它的Render方法。Render方法采用System.Web.UI.HtmlTextWriter类型的参数。控件要发送到客户端的HTML作为字符串参数传递到HtmlTextWriter的Write方法。
例如:
服务器控件代码(简单显示字符串):Simple.vb:
ImportsSystem
ImportsSystem.Web
ImportsSystem.Web.UI
NamespaceSimpleControlSamples
PublicClassSimpleVB:InheritsControl
ProtectedOverridesSubRender(OutputAsHtmlTextWriter)
Output.Write("%26lt;H2%26gt;欢迎使用控件开发!%26lt;/H2%26gt;")
EndSub
EndClass
EndNamespace
引用文件Simple.aspx:
%26lt;%@RegisterTagPrefix="SimpleControlSamples"Namespace="SimpleControlSamples"Assembly="SimpleControlSamplesVB"%%26gt;
%26lt;html%26gt;
%26lt;body%26gt;
%26lt;formmethod="[wiki]POS[/wiki]T"action="Simple.aspx"runat=server%26gt;
%26lt;SimpleControlSamples:SimpleVBid="MyControl"runat=server/%26gt;
%26lt;/form%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
13、如何在ASP.NET程序中发送邮件呢?
在ASP.NET程序中发送邮件不再象ASP中那样需要组件的支持了,在.NET的框架基类的System.Web.Mail名称空间内包含的MailMessage和SmtpMail类可以实现这个功能。
例如:
DimmessageAsnewMail.MailMessage
message.From="web3@163.com"
message.To="web3@163.com"
message.Subject="[wiki]测试[/wiki]"
message.Body="内容"
Mail.SmtpMail.SmtpServer="localhost"
Mail.SmtpMail.Send(message)
14、我将如何通过ADO.NET读取[wiki]数据库[/wiki]中的图片并显示它呢?
下面举一个从Microsoft[wiki]SQL[/wiki]Server的PUB数据库读取图片并显示它的例子:
下面举一个从MicrosoftSQLServer的PUB数据库读取图片并显示它的例子:
%26lt;%@ImportNamespace="System.Data.SqlClient"%%26gt;
%26lt;%@ImportNamespace="System.Drawing"%%26gt;
%26lt;%@ImportNamespace="System.Drawing.Imaging"%%26gt;
%26lt;%@ImportNamespace="System.IO"%%26gt;
%26lt;scriptlanguage="VB"runat="server"%26gt;
SubPage_load(SenderasObject,EasEventArgs)
dimstreamasnewMemoryStream
dimconnectionasSqlConnection
connection=newSqlConnection("server=localhost;database=pubs;uid=sa;pwd=")
try
connection.Open()
dimcommandasSqlCommand
command=newSqlCommand("selectlogofrompub_infowherepub_id='0736'",connection)
dimimageasbyte()
image=command.ExecuteScalar()
stream.Write(image,0,image.Length)
dimimgbitmapasbitmap
imgbitmap=newBitmap(stream)
Response.ContentType="image/gif"
imgbitmap.Save(Response.OutputStream,ImageFormat.Gif)
Finally
connection.Close()
stream.Clse()
EndTry
EndSub
%26lt;/script%26gt;