位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# ASP.NETWeb Forms

提问人:刘团圆发布时间:2020-12-09

选择ASP.NETWeb Forms而不是其他框架的原因是:

    • 对于中小型开发团队和开发项目而言,Web Forms是最理想的选择 

    • 对于需要在HTTP通信中维护会话和状态的Web应用程序而言,Web Forms很有用 

    • Web Forms基于非常直观的一组请求管道事件

    相对于其他ASP.NET风格,ASP.NET Web Forms是快速开发和部署功能丰富、性能良好的Web应用程序的最好、最简单的方法。表示逻辑和业务逻辑分离开来,与前端用户界面开发人员和后台编码人员的技能集很好地对应起来。这是一种理想情况,因为团队可让具备不同技能的人员同时开发项目的不同方面。

    ASP.NET Web Forms 常被认为是“臃肿的”,原因在于 viewstate 功能。viewstate 是在 ASP.NET Web Form 中维护状态的一种方式。例如,假设一个Web应用程序需要完成并提交一系列页面才能下订单。如果用户在整个过程中的某一步单击了返回按钮,将使用原来输入的值重新填充之前的表单,这就是通过viewstate实现的。viewstate功能的问题是可能被滥用(过度使用),导致在客户端和服务器之间来回传递非常大的页面。另外,默认情况下,viewstate是针对Page启用的,而非只针对需要维护状态的Web页面控件启用。

    为避免viewstate带来的问题,最好在Page级别禁用它,这只需要将EnableViewState属性设为felse。例如,如果之后需要维护TextBox的状态,可使用下面的代码来专门针对TextBox启用viewstate。另外,需要监控.aspx文件的大小,确保它们不会变得太大。

    <asp:TextBox EnableViewState="true" ID="Name" runat="server" />

    没有会话,就无法维护状态。维护会话这个概念源于客户端/服务器计算时代,在当时,计算机与服务器之间的连接是永久保持的。HTTP协议是没有状态的,特别适合处理静态(即非动态)的内容。


    ASP.NET Web Forms之所以是动态的,是因为代码隐藏文件(如Default.aspx.es)中使用的C#代码,当请求该文件时,其中的代码就会执行。返回给浏览器的HTML很可能是码基于客户端/用户的独特输入来改变的。根据会话cookie中存储的内容,返回的HTML对于每个客户端也可能是不同的。ASP.NET Web Forms程序员使用以下语法在会话中存储信息:

    Session["username"] = TextBoxUID.Text;

在后续HTTP请求中,可使用以下代码来访问名为username的会话变量:

    var username = Session["username"];

最后,在执行 ASP.NET Web Forms 请求时会发生一些事件,如 BeginRequest、AuthenticateRequest、Init、Load、ProcessRequest和EndRequest等,它们的含义不言自明。这一点很重要,因为当程序员想采取一些特殊操作来验证客户端的身份,或在完成请求之前清理数据时,很容易判断在什么地方添加相关代码。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部