您的位置:首页 > 编程语言 > ASP

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

2008-04-10 15:35 525 查看
类似这个主题的文章在网上流传了很久,里面很多信息已经过时了,而且最早是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="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.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: