zoukankan      html  css  js  c++  java
  • 十四个ASP.NET基础知识问答(C#版)

    很基础的东西,希望对Asp.net爱好者特别是刚刚入门的朋友有所帮助虽然示例代码是C#.net,但是不影响VB.net朋友的参考

    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>

  • 相关阅读:
    Silverlight Quick Starts 翻译(一):目录
    CodeSmith实战(一):生成实体层
    Silverlight Quick Starts翻译(三) 已经有人翻译了
    ten sentences(110)
    SilverLight1.1 之旅(二):添加事件
    [Map 3D开发实战系列] Map Resource Explorer 之七 查看资源内容及资源引用
    欧特克AU中国“大师汇”在线会场 AU China Virtual上线
    Autodesk Topobase 2011 Update 1 – released!
    2010 Autodesk 开发者日即将召开,请速注册!
    云计算时代,你还在观望吗?亚马逊AWS和MapGuide
  • 原文地址:https://www.cnblogs.com/allanbolt/p/1489643.html
Copyright © 2011-2022 走看看