• <menuitem id="ysr28"><object id="ysr28"></object></menuitem>
    <div id="ysr28"></div><div id="ysr28"><s id="ysr28"></s></div>
    <dl id="ysr28"><menu id="ysr28"></menu></dl>
    <tbody id="ysr28"></tbody>
  • <sup id="ysr28"><menu id="ysr28"></menu></sup>
  • <dl id="ysr28"></dl>
    <dl id="ysr28"><menu id="ysr28"></menu></dl>
    首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
    亲,您未登录哦! 登录 | 注册

    ASP.NET中的代码分离

    打印文章

    分享到:
    ASP.NET中包含了一?#20013;?#26041;法:将商业逻辑代码从表达代码中分离出来。这通常被称为背后的代码,功能非常强大,并且非常容易执行。

    实现步骤就是:向ASP.NET 页面中增加用户界面元素,并为它们指定属性“runat=server”。然后,用.NET语言创建一个类文件来操作这些用户界面元素。最后,在ASP.NET 页面顶部增加一个指令,将用户界面与操作它的类文件附着在一起。

    用一个简单的例子就能展示它是如何完成的。下面创建一个名叫WebPage.aspx的ASP.NET页面,在其中?#31243;?#20197;下代码:

    <%@ Page Language="VB" Inherits="dotNet101.MySample.WebPage" %>  <html>  <head>  <title>Code-Behind Demo</title>  </head>  <body>  <form id="messageForm" runat="server">  <asp:TextBox id="message" runat="server" />  <asp:Button id="submit" OnClick="submit_OnClick" Text="Send Message" runat="server" />  </form>  </body>  </html>

    请注意增加到“Page”指令中的“Inherits”属性,它负责通知ASP.NET页面应该为其商业逻辑使用“dotNet101.MySample.WebPage”类。我?#19988;?#32463;向这个页面增加了两个ASP.NET服务器控件,并且为它们和

    Form控件本身指定了“runat=server”属性。这些都是背后的代码类将要操作?#30446;?#20214;。当用户点击“submit?#20445;?#25552;交)按钮时,指定给 Button服务器控件的“OnClick”属性就会告诉ASP.NET引擎激活背后代码类中的submit_OnClick?#24405;?#22788;理器。

    下面,我们需要创建一个背后代码类文件来操作ASP.NET页面。创建一个名为CodeBehind.vb的文件,类的Visual Basic.NET 代码如下:

    Imports System  Imports System.Web  Imports System.Web.UI  Imports System.Web.UI.WebControls  Imports System.Web.UI.HtmlControls  Namespace dotNet101.MySample  Public Class WebPage : Inherits Page  Protected messageForm As HtmlForm  Protected message As TextBox  Public Sub submit_OnClick(sender As Object, e As EventArgs)  Dim output As Label = New Label  output.Text = "You just typed: " & message.Text  messageForm.Controls.Add(output)  End Sub  End Class  End Namespace

    在这个类文件中,我?#19988;?#20837;了许多名称空间,从而帮助背后代码的处理。如果我们没有引入这些名称空间的话,就无权使用?#23454;?#30340;.NET对象来使背后代码工作。然后我?#19988;?#25351;定自己的定制名称空间。这样以来,如果我们愿意的话,就可以在一个文件中包含一个以上的背后代码类。否则,每个背后代码都需要存在于它自己的文件中,你就需要在ASP.NET页面“Page”指令的“Src”属性中指定这个文件。

    我们的WebPage类是从普通的Page(页面)对象中?#22363;?#26469;的,因此它有权使用它的固有服务。这样,就可以与ASP.NET 页面相互作用,并且如果必要的话,可以在Page (页面)层?#24405;?#22914;Page_Init 和 Page_Load中放置?#24405;?#22312;这个例子中,我们只是想对ASP.NET页面上的提交按钮的点击做出响应,所以我们执行以前在ASP.NET 页面中引用过的submit_OnClick ?#24405;?#22788;理器。在?#24405;?#22788;理器内部,我们声明并?#39029;?#22987;化一个新的Label(标签)服务器控件。然后我?#20146;?#21462;“message”TextBox (信息文本框)服务器控件的内容,并将其分配给新的Label(标签)服务器控件。最后,我们向Form(表单)服务器控件的Controls(控件)集合中增加Label(标签)服务器控件。这样,当页面重新装载时,信息就会被显示在页面上。

    要注意我们声明受保护的变量“messageForm”和“message”来存放在ASP.NET页面上对它们相应控件的引用,正是这些声明使我们能够从背后代码类中看到和操作控件。实际上,背后代码类在遗传层次上比ASP.NET 页面本身的位置还要高,因此在ASP.NET 页面上相应?#30446;?#20214;只是通过遗传在简单地“执行”背后代码类中的声明。

    例子的最后一步是编译背后代码类,这可以通过在命令行执行使用下面的指令完成:

    vbc /t:library /out:dotNet101.MySample.dll  /r:System.dll,System.Web.dll CodeBehind.vb

    运行了这个指令后,一个名为“dotNet101.MySample.dll”的文件就会出现在目录中,然后将这个文件放在ASP.NET站点的 “bin”目录中。

    本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

    编程爱好者论坛

    本栏最新文章

    双色球红球杀号方法
  • <menuitem id="ysr28"><object id="ysr28"></object></menuitem>
    <div id="ysr28"></div><div id="ysr28"><s id="ysr28"></s></div>
    <dl id="ysr28"><menu id="ysr28"></menu></dl>
    <tbody id="ysr28"></tbody>
  • <sup id="ysr28"><menu id="ysr28"></menu></sup>
  • <dl id="ysr28"></dl>
    <dl id="ysr28"><menu id="ysr28"></menu></dl>
  • <menuitem id="ysr28"><object id="ysr28"></object></menuitem>
    <div id="ysr28"></div><div id="ysr28"><s id="ysr28"></s></div>
    <dl id="ysr28"><menu id="ysr28"></menu></dl>
    <tbody id="ysr28"></tbody>
  • <sup id="ysr28"><menu id="ysr28"></menu></sup>
  • <dl id="ysr28"></dl>
    <dl id="ysr28"><menu id="ysr28"></menu></dl>