十四個ASP.NET基礎知識問答(C#版)

來源:互聯網
上載者:User
類似這個主題的文章在網上流傳了很久,裡面很多資訊已經過時了,而且最早是VB版的,我整理為了C#版本的,這裡特分享給大家

1、ASP.NET能在那些系統中運行?
目前,ASP.NET還只能運行在微軟的Windows 2000、Windows XP、Windows 2003和Windows2008的下,當然是需要IIS支援的,最初要讓Windows NT4.0也支援ASP.NET,但可能微軟是有些技術問題或市場考慮,還沒有實現NT下的ASP.NET的支援。

2、在一個ASPX檔案中是否可以同時使用一種以上的語言?
答案讓你有點失望,雖然微軟的提供了公用語言運行環境(CLR,Common Laguage Runtime),實現了多種程式設計語言間的緊密整合,可以允許你從一個VB對象中匯出C#所需的對象來,但一個ASPX檔案中只能用一種語言,正如你不能在VB.NET中使用C#的文法一樣,不過不同語言的項目或產生的DLL可以互相調用。

3、ASPX檔案的伺服器端指令碼支援那些語言?
目前,ASPX檔案只支援C#、Visual Basic.NET、Jscript.NET和J#(目前國內比較流行的是C#)但是你使用code-ehind(代碼分離)的方法建立一個獨立代碼檔案,你就可以使用任何.NET編譯器支援的語言來實現功能了。

4、在Global.asax檔案中能使用code—behind(代碼分離)技術嗎?
當然可以了,例如:
Global.asax:
和使用code—behind(代碼分離)技術
Global.asax:
MyApp.cs:

[運行代碼] [複製到剪貼簿] [ ± ]

CODE:

using System.Web;
using System.Web.SessionState;
public class MyApp {
   
    void Application_Start(object sender, EventArgs e) {
        Application("online_session") = 0;
    }
   
    void Session_Start(object sender, EventArgs e) {
        Application.Lock();
        Application("online_session") = (int.Parse(Application("online_session")) + 1);
        Application.UnLock();//bbs.51aspx.com
    }
   
    void Session_End(object sender, EventArgs e) {
        Application.Lock();//51aspx
        Application("online_session") = (int.Parse(Application("online_session")) - 1);
        Application.UnLock();
    }
}

5、我能看到ASPX檔案在ASP.NET中產生的程式碼嗎?
可以看到的,當你的ASPX檔案中包含命令或Web.config中聲明了時,你就可以在系統目錄下的Microsoft.NETFrameworkvX..nnnnTemporary ASP.NET Files中找到ASPX檔案在ASP.NET下產生的檔案。

6、在ASPX檔案中如何注釋呢?
C#與js指令碼的一樣,VB.net同asp的文法一樣。

7、ASPX檔案中是否可以存在一個以上伺服器端 Form 標記?
可以,但是不能同時存在兩個以上伺服器端的Form(即runat="Server")

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)呢?

支援,所有的Web控制項都從基類System.Web.UI.WebControls.WebControl中繼承了一個叫做CssClass的屬性。
例如:

[運行代碼] [複製到剪貼簿] [ ± ]

CODE:

<html>
<head>
<style>
.Input { font: 10pt verdana; color: red; }
</style>
</head>
<body>
<form runat=&quot;server&quot;>
<asp:TextBox CssClass=&quot;Input&quot; RunAt=&quot;server&quot; />
</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.cs:

[運行代碼] [複製到剪貼簿] [ ± ]

CODE:

Imports System
Imports System.Web
Imports System.Web.UI
Namespace SimpleControlSamples
public class SimpleCSharp
{
   
    protected override void Render(HtmlTextWriter Output)
    {
      Response.Write("<H2>歡迎來到Asp.net源碼下載專業站<H2>");
    }
}

引用檔案Simple.aspx:

[運行代碼] [複製到剪貼簿] [ ± ]

CODE:

<%@ Register TagPrefix="SimpleControlSamples" Namespace="SimpleControlSamples" Assembly="SimpleControlSamplesCSharp" %>
<html>
<body>
<form method="POST" action="Simple.aspx" runat=server>
<SimpleControlSamples:SimpleCSharp id="MyControl" runat=server/>
</form>
</body>
</html>

13、如何在ASP.NET程式中發送郵件呢?
在ASP.NET程式中發送郵件不再象ASP中那樣需要組件的支援了,在.NET的架構基類的System.Web.Mail名稱空間內包含的MailMessage和SmtpMail類可以實現這個功能。
例如:

[運行代碼] [複製到剪貼簿] [ ± ]

CODE:

Mail.MailMessage message = new Mail.MailMessage();
message.From = "test@51aspx.com";
message.To = "test@51aspx.com";
message.Subject = "發給51aspx的郵件";
message.Body = "內容";
Mail.SmtpMail.SmtpServer = "localhost";
Mail.SmtpMail.Send(message);

14、我將如何通過ADO.NET讀取資料庫中的圖片並顯示它呢?
下面舉一個從Microsoft SQL Server的PUB資料庫讀取圖片並顯示它的例子:

[運行代碼] [複製到剪貼簿] [ ± ]

CODE:

<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@ Import Namespace="System.IO" %>
<script language="C#" runat="server">
void Page_load(object Sender, EventArgs E) {
        MemoryStream stream = new MemoryStream();
        SqlConnection connection;
        connection = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=");
        try {
            connection.Open();
            SqlCommand command;
            command = new SqlCommand("select logo from pub_info where pub_id=\'0736\'", connection);
            byte[] image;
            image = command.ExecuteScalar();
            stream.Write(image, 0, image.Length);
            bitmap imgbitmap;
            imgbitmap = new Bitmap(stream);
            Response.ContentType = "image/gif";
            imgbitmap.Save(Response.OutputStream, ImageFormat.Gif);
        }
        finally {
            connection.Close();
            stream.Clse();
        }
    }

</script>

原文出處:http://bbs.51aspx.com/showtopic-2635.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.