如果您想了解ASP.NETWebForm中与的区别和asp.netwebform和mvc的知识,那么本篇文章将是您的不二之选。我们将深入剖析ASP.NETWebForm中与的区别的各个方面,并为您解答
如果您想了解ASP.NET WebForm中<%=%>与<%#%>的区别和asp.net webform和mvc的知识,那么本篇文章将是您的不二之选。我们将深入剖析ASP.NET WebForm中<%=%>与<%#%>的区别的各个方面,并为您解答asp.net webform和mvc的疑在这篇文章中,我们将为您介绍ASP.NET WebForm中<%=%>与<%#%>的区别的相关知识,同时也会详细的解释asp.net webform和mvc的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- ASP.NET WebForm中<%=%>与<%#%>的区别(asp.net webform和mvc)
- .NetWeb层之MVC和WebForm区别
- ASP.NET -- WebForm -- .aspx与.aspx.cs文件
- ASP.NET -- WebForm -- 页面生命周期
- ASP.NET -- WebForm -- 页面生命周期事件
ASP.NET WebForm中<%=%>与<%#%>的区别(asp.net webform和mvc)
<%=%>相当于Response.Write(),是输出变量的值
<%#%>专门用于数据绑定,可以绑定一些变量或者数据源中的信息,中间绑定是数据源的条目,若想让它起作用,必须调用DataBind()方法
- HighCharts图表控件在ASP.NET WebForm中的使用总结(全)
- 水晶报表asp.net的webform下基本用法实例
- WebForm获取checkbox选中的值(几个简单的示例)
- js脚本获取webform服务器控件的方法
- Ajax Throws Sys.WebForms.PageRequestManagerErrorException with Response.Redirect的解决方法
- 如何在WebForm中使用javascript防止连打(双击)
- asp.net WebForm页面间传值方法
- asp.net WebForm页面间传值方法
- Webform 内置对象 Session对象、Application全局对象,ViewState详细介绍
.NetWeb层之MVC和WebForm区别
WebForm的理解
1、 WebForm概念
ASP.NETWebform提供了一个类似于Winform的事件响应GUI模型(event-drivenGUI),隐藏了HTTP、HTML、JavaScript等细节,将用户界面构建成一个服务器端的树结构控件(Control),每个控件通过ViewState保持自己的状态,并自动把客户端的js事件和服务器端的事件联系起来。这种做法使得开发WinForm和WebForm程序具有相近的开发体验,填平WinForm开发(有状态、面向对象的)和WebForm开发(无状态、面向HTML的)之间的鸿沟。
2、WebForm 请求流程
比如访问 http://www.qidian.com/Default.aspx
1、Http请求(物理地址:Default.aspx)
①发送请求: 浏览器向服务器发送请求报文,此时由IIS虚拟目录接收。(通过配置过IIS,把网站挂载在服务器上,通过访问虚拟目录的方式访问网站的。)
②转交请求: 服务器端的IIS软件接收到请求后,把请求交给.NET FrameWork进行处理。
③创建页面类对象:.NET FrameWork根据请求的地址index.aspx,会创建对应的index_aspx类的对象(页面对象)。
IIS的内部机制:
实现一个IHttphandler的接口
该接口实现一个ProcessRequest方法
该方法会调用对应页面的Page_load方法
处理的业务逻辑或者是访问数据库的代码
要输出的Html或者其它内容
2、返回给浏览器
①转交回复: 通过IIS传输出给浏览器,要输出的html元素或其他内容(html+js+css等)
②解析为图形界面:浏览器解析html代码,并翻译为图形化界面
如图:
2、 WebForm的优点:
1. 有大量的服务器控件支持,比如:GridView、Repeater等控件可以方便的进行数据绑定,从而减少的大量代码的编写。
2. 学习成本低,由于微软封装的比较深,造成深入学习的难度加大。
3. 基于事件驱动编程,如:click事件等,aspx和cs文件分离,即显示逻辑和处理逻辑分离。
4. 支持视图状态,每个控件以“隐藏域”的形式存在当前表单页面未达到“有状态”,即ViewState。
3、 WebForm的缺点
1. 由于使用的ViewState会增加页面的负担,造成性能不是很高。
2. 代码重用性不高,缺少对并行开发的支持,
3. 因为采用code-behind 代码后植技术,使aspx页面与cs紧密耦合度太高。
4. 对Seo不友好,因为URL指定具体的aspx页面。
5. 因为紧密耦合度太高、使用大量的事件处理函数,不利于单元测试。
二、 MVC的理解
1、 MVC的概念
Asp.netMvc架构模式是一种 低耦合、可测试的web应用程序框架,它是基于CLR和成熟的MVC架构构建的。ASP.NET MVC不支持ViewState和服务器控件。
2、 MVC的请求流程
比如访问:http://www.google.com.hk/FirstPage/Default
1、Http请求(逻辑地址:FirstPage/Default)
①发送请求(FirstPage/Default)
②转交请求(同上)
③创建类对象+方法
.NET FrameWork根据路由配置,解析URL,并创建news类的对象,并调用对象的index方法。通过View方法加载视图,然后访问视图文件夹下的index.cshtml
2、返回给浏览器
如图:
3、 MVC的优点
1. 架构降低了程序间的耦合性。
2. 不支持ViewState,页面更加干净,可以提升程序的性能。
3. 支持并行开发,可扩展性好,继承了asp.net的特性,表单验证、缓存、会话等。
4. 由于程序耦合度低,可以比较顺利的进行单元测试。
5. 通过修改路由规则,可以控制生成自定义的url,因此控制生成seo友好的url将更加容易。
6. 强类型view实现,更安全,更高效。
4、 MVC的缺点
需要有一定的html、css、js、jquery前端技术,也就增加了一些学习的成本。
MVC和WebForm的选择场景
新开发的项目建议采用MVC。
想要快速开发的中小型项目可以选择WebForm。
比较关注单元测试、性能、SEO、代码重用性的话建议采用MVC。
最后结语
MVC和WebForm都有自己的优缺点,目前两种技术都存在,证明都有自己的价值,虽然现在MVC应用越来越广发,我们不能一味的否定WebForm。一个高级程序员用WebForm实现的网站性能并不一定比初级程序员用MVC实现的网站性能差,最重要的还是努力提升自己的技术能力才是王道!
ASP.NET -- WebForm -- .aspx与.aspx.cs文件
ASP.NET -- WebForm -- .aspx与.aspx.cs文件
1. ASP.NET -- WebForm(C#)文件
.aspx文件:是Html页面,页面的布局,样式在该文件中设计。
.aspx.cs文件:后台代码
.aspx.designer.cs文件:由工具自动生成的代码。
新建一个web窗体页面,在.aspx文件顶部,有下面这样一行代码必不可少:
2. 也可以直接在.aspx文件中直接写C#后台代码,但要写在<% %>中。
<span><!<span>DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"<span>>
<span><<span>html <span>xmlns<span>="http://www.w3.org/1999/xhtml"<span>>
<span><<span>head <span>runat<span>="server"<span>>
<span><<span>title<span>>my Test Aspx<span></<span>title<span>>
<span></<span>head<span>>
<span><<span>body<span>>
<span><<span>p<span>><span><%<span>Response.Write(<span>"<span>Hello World!<span>"<span>);<span>%><span></<span>p<span>>
<span><<span>form <span>id<span>="form1"<span> runat<span>="server"<span>>
<span><<span>div<span>>
<span><<span>p<span>><span><%<span>Response.Write(DateTime.Now.ToLongTimeString());<span>%><span></<span>p<span>>
<span></<span>div<span>>
<span></<span>form<span>>
<span></<span>body<span>>
<span></<span>html<span>>
ASP.NET -- WebForm -- 页面生命周期
ASP.NET -- WebForm -- 页面生命周期
ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果。常规页生命周期阶段 1. 页请求 页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。 2. 开始 在开始阶段,将设置页属性,如 Request 和 Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置 IsPostBack 属性。此外,在开始阶段期间,还将设置页的 UICulture 属性。 3. 页初始化 页初始化期间,可以使用页中的控件,并将设置每个控件的 UniqueID 属性。此外,任何主题都将应用于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。 4. 加载 加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。 5. 验证 在验证期间,将调用所有验证程序控件的 Validate 方法,此方法将设置各个验证程序控件和页的 IsValid 属性。 6. 回发事件处理 如果请求是回发请求,则将调用所有事件处理程序。 7. 呈现 在呈现之前,会针对该页和所有控件保存视图状态。在呈现阶段中,页会针对每个控件调用 Render 方法,它会提供一个文本编写器,用于将控件的输出写入页的 Response 属性的 OutputStream 中。 8. 卸载 完全呈现页并已将页发送至客户端、准备丢弃该页后,将调用卸载。此时,将卸载页属性(如 Response 和 Request)并执行清理。
ASP.NET -- WebForm -- 页面生命周期事件
ASP.NET -- WebForm -- 页面生命周期事件
在页生命周期的每个阶段中,页将引发可运行您自己的代码进行处理的事件。
1. PreInit: 使用该事件来执行下列操作:
检查 IsPostBack 属性来确定是不是第一次处理该页。
创建或重新创建动态控件。
动态设置主控页。
动态设置 Theme 属性。
读取或设置配置文件属性值。
注意: 如果请求是回发请求,则控件的值尚未从视图状态还原。如果在此阶段设置控件属性,则其值可能会在下一事件中被覆盖。
2. Init
在所有控件都已初始化且已应用所有外观设置后引发。使用该事件来读取或初始化控件属性。
3. InitComplete
由 Page 对象引发。使用该事件来处理要求先完成所有初始化工作的任务。
4. PreLoad
如果需要在 Load 事件之前对页或控件执行处理,请使用该事件。
在 Page 引发该事件后,它会为自身和所有控件加载视图状态,然后会处理 Request 实例包括的任何回发数据。
5. Load
Page 在 Page 上调用 OnLoad 事件方法,然后以递归方式对每个子控件执行相同操作,如此循环往复,直到加载完本页和所有控件为止。
使用 OnLoad 事件方法来设置控件中的属性并建立数据库连接。
6. 控件事件
使用这些事件来处理特定控件事件,如 Button 控件的 Click 事件或 TextBox 控件的 TextChanged 事件。
注意:在回发请求中,如果页包含验证程序控件,请在执行任何处理之前检查 Page 和各个验证控件的 IsValid 属性。
7. LoadComplete
对需要加载页上的所有其他控件的任务使用该事件。
8. PreRender:页上的每个控件都会发生 PreRender 事件。使用该事件对页或其控件的内容进行最后更改。
在该事件发生前:
Page 对象会针对每个控件和页调用 EnsureChildControls。
设置了 DataSourceID 属性的每个数据绑定控件会调用 DataBind 方法。
9. SaveStateComplete
在该事件发生前,已针对页和所有控件保存了 ViewState。将忽略此时对页或控件进行的任何更改。
使用该事件执行满足以下条件的任务:要求已经保存了视图状态,但未对控件进行任何更改。
10.Render
这不是事件;在处理的这个阶段,Page 对象会在每个控件上调用此方法。所有 ASP.NET Web 服务器控件都有一个用于写出发送给浏览器的控件标记的 Render 方法。
如果创建自定义控件,通常要覆盖此方法以输出控件的标记。不过,如果自定义控件只合并标准的 ASP.NET Web 服务器控件,不合并自定义标记,则不需要覆盖 Render 方法。
用户控件(.ascx 文件)自动合并呈现,因此不需要在代码中显式呈现该控件。
11.Unload
该事件首先针对每个控件发生,继而针对该页发生。在控件中,使用该事件对特定控件执行最后清理,如关闭控件特定数据库连接。
对于页自身,使用该事件来执行最后清理工作,如:关闭打开的文件和数据库连接,或完成日志记录或其他请求特定任务。
注意: 在卸载阶段,页及其控件已被呈现,因此无法对响应流做进一步更改。如果尝试调用方法(如 Response.Write 方法),则该页将引发异常
今天关于ASP.NET WebForm中<%=%>与<%#%>的区别和asp.net webform和mvc的介绍到此结束,谢谢您的阅读,有关.NetWeb层之MVC和WebForm区别、ASP.NET -- WebForm -- .aspx与.aspx.cs文件、ASP.NET -- WebForm -- 页面生命周期、ASP.NET -- WebForm -- 页面生命周期事件等更多相关知识的信息可以在本站进行查询。
本文标签: