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 類型的參數??丶l送到客戶端的 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>