十四个ASP.NET基础知识问答(C#版)

简介:
类似这个主题的文章在网上流传了很久,里面很多信息已经过时了,而且最早是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:

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的属性。 
例如:


<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:


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:


<%@ 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类可以实现这个功能。 
例如:

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数据库读取图片并显示它的例子:


<%@ 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
相关文章
|
3月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
164 0
|
2月前
|
开发框架 搜索推荐 算法
一个包含了 50+ C#/.NET编程技巧实战练习教程
一个包含了 50+ C#/.NET编程技巧实战练习教程
120 18
|
2月前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
77 12
|
2月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(24年12月更新)
C#/.NET/.NET Core拾遗补漏合集(24年12月更新)
|
2月前
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
|
2月前
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
|
2月前
|
开发框架 监控 .NET
C#进阶-ASP.NET WebForms调用ASMX的WebService接口
通过本文的介绍,希望您能深入理解并掌握ASP.NET WebForms中调用ASMX WebService接口的方法和技巧,并在实际项目中灵活运用这些技术,提高开发效率和应用性能。
75 5
|
2月前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
149 13
|
3月前
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
86 7
|
3月前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)