ASP.NET代码后置机理

一.内联代码与代码隐藏

代码隐藏模型相对内联代码的优势:

1.逻辑代码和html的分离,使得我们可以更专注于业务逻辑的处理。

2.使业务逻辑更加清晰。

3.可以将后置代码编译成dll,使得程序更加安全。

二.后置代码与页面的关系和机制

与代码后置模型相关的三个类。

1.基页面类 page类

.net类库中的page类,page类定义了页面的基本功能。例如:允许存放其他控件、呈现html、提供对asp.net对象的访问(如request、response、session等)。

2.代码后置类

在编译的时候,asp.net利用了分部类的神奇功能把一些额外的代码附加到代码后置类中。

在附加的这部分代码中,把页面上所有控件定义成protected类型的变量,从而使得可以在代码后置类中能够访问这些控件。

3.页面类

asp.net编译器在编译的时候会创建另一个类代表实际的aspx页面,这个类继承自代码隐藏类。

这个类中包含了初始化控件和呈现html的代码。当接受到这个页面请求时,asp.net实例化这个类。

这三各类的关系如下图:

三.代码隐藏文件与页面的连接
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

代码隐藏文件与页面的连接非常简单,在aspx页面顶端的这样一句话就完成了他们之间的连接。

codeFile指定了后置代码的文件,Inherits指定了已经编译的后置代码的类名。

四.控件与页面变量的连接 

了解后置代码类和页面类的关系以后,控件如何和页面变量连接的理解就简单多了。

比如:

 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

asp.net编译器都会附件如下的变量声明到你的代码后置类中,当然这些声明是不可见的:

protected System.Web.UI.TextBox TextBox1;

这样就能够在后置代码类中访问页面控件标签了。

五.事件与事件处理程序的连接

.net当中事件机制是一种非常重要的机制,这一部分放到后面慢慢弄清楚。

时间: 2024-08-07 17:01:05

ASP.NET代码后置机理的相关文章

框架页面尽可以这么用(后置代码中控制框架)

下面是框架页: <%@ Page CodeBehind="Frameset.aspx.cs" Language="c#" AutoEventWireup="false" Inherits="IbatisTest.Web.Frameset" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"><HTML>

.NET在后置代码中输入JS提示语句(背景不会变白)

来源:http://niunan.iteye.com/blog/248256 Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('加入暂存架成功!');</script>"); 类似于AJAX的效果,页面不刷新!! .NET在后置代码中输入JS提示语句(背景不会变白)

Asp.Netcore使用Filter来实现接口的全局异常拦截,以及前置拦截和后置拦截

原文链接:https://blog.csdn.net/qq_38762313/article/details/85234594 全局异常拦截器:       解决写每个接口都需要去做容错而添加try{}catch{},有了该异常拦截器后,所有接口都不需要去添加异常处理. 实现方式: 第一步:新建一个类继承 IExceptionFilter,添加 using Microsoft.AspNetCore.Mvc.Filters;该类的名称命名要求是:后缀必须ExceptionFilter,例如:Glo

ASP.NET内置对象(转)

asp.net学习笔记,在网上找了比较全的总结.转自:http://www.cnblogs.com/MyBeN/archive/2011/03/23/1992591.html ASP.NET中常用的内置对象(一) ASP.NET中常用的内置对象及功能说明如下所示:对 象 名 功  能  说  明Page 用于操作整个页面Response 用于向浏览器输出信息Request 用于获取来自浏览器的信息Server                    提供服务器端的一些属性和方法Applicatio

利用 ASP.NET 的内置功能抵御 Web 攻击 (1)

摘要: Dino 总结了最常见的 Web 攻击类型,并介绍了 Web 开发人员可以如何使用 ASP.NET 的内置功能来改进安全性. 一.ASP.NET 开发人员应当始终坚持的做法 如果您正在阅读本文,可能就不需要再向您灌输 Web 应用程序中的安全性愈来愈重要这一事实了.您需要的可能是一些有关如何在 ASP.NET 应用程序中实现安全性的实际建议.坏消息是,没有任何开发平台 — 包括 ASP.NET在内 — 能够保证一旦采用了该平台,您就能够编写百分百安全的代码.谁要是这么说,一准在撒谎.好消

c++重载后置++和--

c++语言并不要求递增和递减运算符必须是类的成员,但是因为它们改变的正好是所操作对象的状态,所以建议将其设定为成员函数.(但下面的代码为了练习,还是分别采用成员函数和全局函数的方式实现) 业余实现代码: 1 #include<iostream> 2 using namespace std; 3 class Test { 4 friend Test & operator--(Test &obj); 5 friend Test operator--(Test &obj, i

后置++和解引用*的优先级

char* p = "worldcup"; *p++ = 'a'; 其中,*p++ = 'a'执行顺序,涉及到后置++和解引用*的优先级问题: ;19: char* p = "worldcup"; mov dword ptr [ebp-0Ch],offset string "worldcup" ;20: *p++ = 'a'; mov eax,dword ptr [ebp-0Ch] ; p -> eax mov byte ptr [eax]

[Asp.net 5] Options-配置文件(2)

很久之前写过一篇介绍Options的文章,2016年再打开发现很多变化.增加了新类,增加OptionMonitor相关的类.今天就对于这个现在所谓的新版本进行介绍. 老版本的传送门([Asp.net 5] Options-配置文件之后昂的配置). 首先上一个图: *绿线是继承关系,蓝线是关联关系. 我们把上面切成2大部分. Option部分 这部分分为俩部分,第一部分直接创建Options,该部分通过Options静态类创建一个OptionsWrapper类,之后将(IOptions,Optio

wp8.1之拍照(获取焦点,使用后置摄像头)

wp8.1 没有像wp8一样直接用启动器开启摄像头,他要开启摄像头要借助CaptureElement呈现来自捕获设备(如照相机或网络摄像机)的流.今天讲讲如何打开摄像头,获取焦点,以及拍照.废话不多说,下面直接上代码.当然前提是一定要记住在appxmanifest文件Capabilities选项选择Webcam,不然会报错 首先 XAML代码: <Grid Name="LayoutRoot"> <CaptureElement x:Name="captureP