ASP.NET相关问题14问
2024-07-10 12:58:00
供稿:网友
 
 
1、asp.net能在那些系统中运行? 
目前,asp.net还只能奔跑在微软的windows 2000、windows xp和windows 2003的系统中,并且需要微软internet information server(iis)的支持,微软原计划要让windows nt4.0也支持asp.net,但可能微软是有些技术问题或市场考虑,还没有实现nt下的asp.net的支持。
2、在一个aspx文件中是否可以使用一种以上的语言?
答案让你有点失望,虽然微软的提供了公共语言运行环境(clr,common laguage runtime),实现了多种编程语言间的紧密集成,可以允许你从一个vb对象中导出c#所需的对象来,但一个aspx文件中只能用一种语言,正如你不能在vb.net中使用c#的语法一样。
3、aspx文件的服务器端脚本支持那些语言?
目前,aspx文件只支持c#、visual basic.net、jscript.net和j#,但是你使用code—behind(代码分离)的方法创建一个独立代码文件,你就可以使用任何.net编译器支持的语言来实现功能了。
4、在global.asax文件中能使用code—behind(代码分离)技术吗?
当然可以了,例如:
global.asax:
<script language=vb" runat="server">
 sub application_start(byval sender as object, byval e as eventargs)
 application("online_session") = 0
 end sub
 sub session_start(byval sender as object, byval e as eventargs)
 application.lock()
 application("online_session") = cint(application("online_session")) + 1
 application.unlock()
 end sub
 sub session_end(byval sender as object, byval e as eventargs)
 application.lock()
 application("online_session") = cint(application("online_session")) - 1
 application.unlock()
 end sub
</script>
和使用code—behind(代码分离)技术
global.asax:
<%@ application inherits="myapp" %>
myapp.vb:
imports system.web
imports system.web.sessionstate
public class myapp
 sub application_start(byval sender as object, byval e as eventargs)
 application("online_session") = 0
 end sub
 sub session_start(byval sender as object, byval e as eventargs)
 application.lock()
 application("online_session") = cint(application("online_session")) + 1
 application.unlock()
 end sub
 sub session_end(byval sender as object, byval e as eventargs)
 application.lock()
 application("online_session") = cint(application("online_session")) - 1
 application.unlock()
 end sub
end class
5、我能否看到aspx文件在asp.net中生成的代码吗?
可以看到的,当你的aspx文件中包含<%@ page debug="true" %>命令或web.config中声明了<compilation debug="true">时,你就可以在系统目录下的microsoft.net/framework/v1.0.nnnn/temporary asp.net files中找到aspx文件在asp.net下生成的文件。
6、在aspx文件中如何注释呢?
同asp文件中的方法一样。
<%--
response.write "测试!" 
--%>
7、aspx文件中是否可以存在一个以上服务器端 form 标记?
不可以
8、我可以在web窗体中使用自定义数据类型吗
可以,你可以把包含自定义数据类型的dll文件放在程序根目录下的bin目录中,asp.net会在数据类型引用时,装载dll文件的。
9、我能在global.asax文件中触发那些事件?
application对象创建和结束时所触发的事件有
 application_start 
 application_end
session对象创建和结束时所触发的事件有
• session_start 
• session_end
对程序有请求发生时触发的事件有 (按发生顺序排列)
• application_beginrequest 
• application_authenticaterequest 
• application_authorizerequest 
• application_resolverequestcache 
• application_acquirerequeststate 
• application_prerequesthandlerexecute 
• application_postrequesthandlerexecute 
• application_releaserequeststate 
• application_updaterequestcache 
• application_endrequest
当有程序有错误发生时触发的事件有
• application_error 
• application_disposed
10、web控件是否支持样式表(css)呢?
yes. all web controls inherit a property named cssclass from the base class system.web.ui.webcontrols.webcontrol. the following example defines a css class named input and uses it to modify a textbox control to display text in red 10-point verdana type:
支持,所有的web控件都从基类system.web.ui.webcontrols.webcontrol中继承了一个叫做cssclass的属性。
例如:
<html>
 <head>
 <style>
 .input { font: 10pt verdana; color: red; } 
 </style>
 </head>
 <body>
 <form runat="server">
 <asp:textbox cssclass="input" runat="server" />
 </form>
 </body>
</html>
11、在aspx文件中默认导入那些名称空间?
aspx默认导入的名称空间可以直接引用了,使用其它的名称空间就的自行导入了。
默认名称空间
 system 
 system.collections 
 system.collections.specialized 
 system.configuration 
 system.text 
 system.text.regularexpressions 
 system.web 
 system.web.caching 
 system.web.security 
 system.web.sessionstate 
 system.web.ui 
 system.web.ui.htmlcontrols 
 system.web.ui.webcontrols
12、我是否可以自己创建服务器控件呢?
可以,创作您自己的 asp.net 服务器控件很容易。创建简单的自定义控件时,您所要做的只是定义从 system.web.ui.control 派生的类并重写它的 render 方法。render 方法采用 system.web.ui.htmltextwriter 类型的参数。控件要发送到客户端的 html 作为字符串参数传递到 htmltextwriter 的 write 方法。 
例如:
服务器控件代码(简单显示字符串):simple.vb:
imports system
imports system.web
imports system.web.ui
namespace simplecontrolsamples
 public class simplevb : inherits control
 protected overrides sub render(output as htmltextwriter)
 output.write("<h2>欢迎使用控件开发!</h2>")
 end sub
 end class
end namespace
引用文件simple.aspx:
<%@ register tagprefix="simplecontrolsamples" namespace="simplecontrolsamples" assembly="simplecontrolsamplesvb" %>
<html>
 <body>
 <form method="post" action="simple.aspx" runat=server>
 <simplecontrolsamples:simplevb id="mycontrol" runat=server/>
 </form>
 </body>
</html>
13、如何在asp.net程序中发送邮件呢?
在asp.net程序中发送邮件不再象asp中那样需要组件的支持了,在.net的框架基类的system.web.mail名称空间内包含的mailmessage和smtpmail类可以实现这个功能。
例如:
 dim message as new mail.mailmessage
 message.from = "[email protected]"
 message.to = "[email protected]"
 message.subject = "测试"
 message.body = "内容"
 mail.smtpmail.smtpserver = "localhost"
 mail.smtpmail.send(message)
14、我将如何通过ado.net读取数据库中的图片并显示它呢?
下面举一个从microsoft sql server的pub数据库读取图片并显示它的例子:
<%@ import namespace="system.data.sqlclient" %>
<%@ import namespace="system.drawing" %>
<%@ import namespace="system.drawing.imaging" %>
<%@ import namespace="system.io" %>
 <script language="vb" runat="server">
 sub page_load(sender as object, e as eventargs) 
 dim stream as new memorystream
 dim connection as sqlconnection 
 connection=new sqlconnection("server=localhost;database=pubs;uid=sa;pwd=")
 try 
 connection.open()
 dim command as sqlcommand
 command = new sqlcommand ("select logo from pub_info where pub_id='0736'", connection)
 dim image as byte()
 image = command.executescalar ()
 stream.write (image, 0, image.length)
 dim imgbitmap as bitmap 
 imgbitmap = new bitmap (stream)
 response.contenttype = "image/gif"
 imgbitmap.save (response.outputstream, imageformat.gif)
 finally
 connection.close()
 stream.close()
 end try
 end sub
</script>