diff --git "a/46\350\265\226\346\235\260\346\236\227/.NET\347\254\224\350\256\260.md" "b/46\350\265\226\346\235\260\346\236\227/.NET\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..e169f7d95067b77cfefc31f616bdfb588fa49a8f --- /dev/null +++ "b/46\350\265\226\346\235\260\346\236\227/.NET\347\254\224\350\256\260.md" @@ -0,0 +1,377 @@ +# .NET笔记 + +# 5.16日 + +##### 1.静态网页&服务器端开发技术 + +静态网页: + +​ 以.html 或者.htm 结尾的网页 + +​ 只能单纯的显示文本和图像 + + 无法和用户接互,无法根据用户的请求显示不同的网页内容 + +服务器端开发技术: + +​ 不仅可以显示文本和图像 + + 还可以根据用户请求,动态显示不同的网页内容(与后台交互) + +##### 2.什么是IIS + +同样是动态网页技术,ASP.NET就像JSP需要Tomcat服务器或者Apache服务器一样,ASP.NET也需要使用Web服务器作为其发布平台,一般使用IIS作为其Web服务器。IIS是Internet信息服务(Internet Information Server)的缩写,是微软的Internet服务器 + +IIS是Windows Servers 操作系统免费捆绑的组件 + +IIS是web应用程序运行的服务器 + +##### 3.总结 + +ASP.NET是创建动态Web页的一种强大的服务器端新技术 + + + +IIS(Internet Information Services,Internet信息服务)是基于Windows服务器的服务,可帮助在任何Intranet或Internet上发布信息 + + + +Web窗体是一项ASP.NET功能,可以使用它为Web应用程序创建用户界面 + + + +Web窗体将Web应用程序分两部分:可视化组件和该页的编程逻辑 + +# 5.17日 + +#### 页面对象 + +##### 1.服务器端脚本 + +服务器端脚本也是页面的一部分,它不发送至浏览器,而是在请求页面之后和在回送至浏览器之前由服务器处理这些脚本。 + +```c# + +``` + +##### 2.ASP.NET Web 运行原理 + +**UserLogin.aspx**(可视化组件)+**UserLogin.aspx.cs**(逻辑代码)=由aspx与aspx.cs共同组成了 + +Webform网站页面 + +##### 3. + +###### 页面指令 + +<%@ Page Language="C#" AutoEventWireup="true" + +CodeBehind="Text.aspx.cs" Inherits="_02页面对象.Text" %> + +###### 页面对象 + +每个.aspx文件对应一个Page对象 + +.aspx页面与后台代码类(局部类)合并生成页面类 + +Page对象是页面类的实例 + +所有的.aspx文件(Web窗体页)都继承自System.Web.UI.Page类 + +##### 4.页内传值 + +在ASP.NET中可以利用视图状态实现页内数据的传递 + +​ //存放信息 + +​ ViewState["nameId"]="0001"; + +​ //读取信息 + +​ String NameID = ViewState["nameID"].ToString(); + +##### 5.跨页面传值 + +步骤: + +1.在Page1中使用IsPostBackUrl指定Page2 + +2.在Page2中的Page_Load编写代码: + +​ 1) 首先判断Page2页面是否有上一页,如果是没有那么Page.Previous == null + +​ 2)其次使用Previous.FindControl()查找上一页的指定ID值 + +##### 6.总结 + +ASP.NET页文件是含有将在Web上执行代码的文件,其扩展名是.aspx或.ascx + +ASP.NET页面中使用两种类型的脚本 + +服务器端脚本 + +客户端脚本 + +事件处理程序实际上就是一个子程序,执行任何给定事件的相关代码 + +在页面加载时引发Page_Load事件。 + +Page.IsPostBack属性用于检查页面是否为首次加载 + +可以使用PreviousPage对象访问前一个页面的控件值 + +# 5.20日 + +#### 内置对象 + +##### 1.Request对象 + +Request如何获取传递过来的数据: + +​ •QueryString(查询字符串):获取通过URL传递过来的数据 + +​ •Form(表单数据):获取通过表单提交传输的数据 + +​ •ServerVariables属性:获取Web服务器变量的集合 + +​ •Params:以上三种方式传输的内容都可以使用该属性获取 + +##### 2.HTTP协议的无状态 + +理解无状态特性: + +​ • 协议对于事务处理没有记忆能力 + +​ • 对同一个url请求没有上下文关系 + +​ • 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的, + +​ 它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况 + +​ • 服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器 + +即在ASP.NET 后台中,不再有所谓的“成员变量”. (每次都会被初始化) + +##### 3.Server对象-MathPath + +MapPath 方法: + +​ Web 应用程序位于 IIS 根目录下的虚拟目录中 + +​ 因此,我们请求网页时,引用称为“虚拟路径”的虚拟目录路径。但是经常需要得到 Web 服务器上 的 Web 资源的实际物理路径 + +​ 用 MapPath 方法,我们可从其虚拟路径得到 Web 资源(如 .aspx 页面)的物理路径 + +# 5.23日 + +##### 1.Session应用和属性 + +典型应用: + +​ 不同数据之间需要传递较为复杂的数据,保存用户的登录信息,未登录者禁止访问相关页面 + +属性 说明 + +SessionID 包含一个唯一的用户会话标识符。它用于在会话过程中跟踪用户的信息。要检索 SessionID,使用 Session.SessionID + +TimeOut 设置用户超时,即它以分钟为单位指定 Session 对象在释放资源之前能够保持闲置的 时间。用户可导航至另一个站点而不用关闭该应用程序。如果设定了超时属性,则无 人操作的用户会话可被清除,由此释放服务器的资源。 默认值为 20 分钟。可通过在 ASPX 文件中赋值来更改此设置。例如,<% Session.Timeout = 10 %> + +方法 说明 + +Add(stirng name, object value) 添加键值对 + +Remove(string name) 根据键删除指定项 + +Clear() 从会话状态集合中移除所有的键值 + +Abandon() 结束Session,取消当前会话 + +##### 2.Cookie对象特点 + +特点: + + 存储少量不重要的数据 + + 存储在客户端的文本文件中,(必须设置有效期,否则不被存储) + + 安全性差 + + 存储的数据类型----字符串 + + 与浏览器窗口无关,但与访问站点有关 + + 具有特定的过期时间和日期 + + 在客户端存储后,将随着浏览器对相关网站页面请求一并发送到Web服务器 + +##### 2.Cookie对象 + +创建方法一、 + +​ Response.Cookies[Cookie名].Value = 变量值; + +创建方法二、 + +​ HttpCookie hc = new HttpCookie(Cookie名称,变量值); + +​ Response.Cookies.Add(hcCookie); + +设置有效期:DateTime.Now.AddDays(1.0) + +读取方法: + +​ string 变量名 = Request.Cookies[Cookie名称].Value + +注意:创建Cookie使用Response,读取用Request + +# 5.24日 + +#### 基本控件 + +##### 1.Web服务器控件与HTML服务器控件 + +​ **HTML**控件 **ASP.NET**服务器控件 + +​ 运行在客户端 运行在服务器端 + +​ 没有回发,(无法使用ViewState) 有回发,(ViewState) + +​ 使用JS完成事件处理 服务器完成事件处理(C#后台处理程序) + +​ 如果需要访问后台,使用JQuery 事件驱动模型编程(控件+事件) + +##### 2.文本类型控件: Label、 Literal、TextBox、HiddenField + +Label在页面上显示一个静态文本,其属性有:Text(文本)ForeColor(颜色) Visible(是否可见) + +Literal控件:纯文本,不生成任何多于代码(推荐使用) + + + +**TextBox****:在页面上显示一个可编辑的文本框** + +**常用属性:** + +​ **ReadOnly****:****获取或设置一个值,用于指示能否更改****TextBox****控件的内容** + +​ **TextMode****:****获取或设置****TextBox****控件的行为模式** + +​ **SingleLine****:****单行** **MultiLine****:****多行** **Password:****密码****(\*)** + +##### 3.按钮类型控件 + +Button: + +LinkButton + +ImageButton + +HyperLink + + + +常用属性:PostBackUrl(跨页提交)、 CommadName(按钮相关的命令名)、 + + CausesValidation:是否激活验证、 + +​ **OnclientClick****:****引发****Button控件的Click事件时所执行的客户端脚本 + + + +功能上与HTML的超链接一致,但是可以在后台动态改变,通过:NavigateUrl属性 + +##### 4.选择类型控件 + +ListBox + +DropDownList + +RadioButton + +CheckBox + +# 5.30日.5.31日 + +#### 验证控件 + +##### 1.数据有效验证方式 + +编写C#后台代码 + +​ 使用页面回传,用户体验不好,服务器压力大 + +编写Js脚本进行自定义 + +​ 验证方式可以自定义,但编写较为麻烦 + +ASP.NET的验证控件 + +​ 验证简单,方便;安全性高 + +使用jQuery验证插件 + +​ 使用简单,高效。用户体验良好 + +##### 2.非空验证:RequiredFieldValidator控件 + +属性 说明 + +ControlToValidate 用于指定将要检查其值的控件,它具有该控件的ID值 + +ErrorMessage 用于指定在窗体中同时使用ValidationSummary控件与 RequierdFieldValidator控件时前者中显示的错误信息。如果未设置文本 属性,则此属性将用于显示窗体中的错误 + +ForeColor 错误提示文字颜色 + + + +方法 说明 + +Validate 此方法用于执行验证。它将根据验证的成功情况将IsValid属性更改为True 或False + +##### 3.比较控件:CompareValidator控件 + +属性 说明 + +ContrlToCompare 指定用来比较值的控件的ID + +ContrlToValidate 指定将要验证的控件的ID + +ErrorMessage 在页面中使用ValidationSummary控件时显示错误消息 + +Text 用于指定验证控件后出现错误时将会显示的错误信息 + +ValueToCompare 指定与所验证控件中的值相比较的值 + + + +方法 说明 + +Validate 执行验证,它将根据验证的成功情况将IsValid属性更改为True或False + +Operator 执行的操作类型 + +##### 4.范围验证:RangeValidator控件 + +属性 说明 + +ControlToValidate 指定将要检查其值的控件,它具有该控件的ID值 + +ErrorMessage 指定在页面中使用ValidationSummary控件时该控件中显示的错误消息 + +MaximumValue 指定容许为此控件设置的最大值 + +MinimumValue 指定容许为此控件设置的最小值 + +Type 设置控件所验证的数据类型 + +##### 5.ValidationSummary控件 + +属性 说明 + +DisplayMode 此属性用于指定将以摘要形式显示错误消息的方式。它将以为下列任意一 种方式:BulletList、或SingleParagraph + +Enabled 用于启用或禁用窗体中的客户端和服务器端验证。默认值为True + +ShowMessageBox 此属性用于激活弹出式消息框,以便显示窗体中的错误。为此必须将其设 置为True,若为False则在页面列出错误点 \ No newline at end of file