`

ASP.NET学习

 
阅读更多

WebForm

前台aspx:控制页面显示格式,后台cs:控制程序逻辑。

aspx文件 :后缀名aspx。一般称为Web窗体或WebForm。相当于模板,页面中有asp标签。asp标签 会asp.net引擎会自动 翻译成HTML。

cs文件 :后缀名aspx.cs。后台逻辑代码。cs可以访问aspx中的控件。aspx中也可以访问cs中定义的字段、函数。

 

aspx页面中可以想JSP那样写C#代码。

例:在页面中用C#写十个“你好”

<%for(int i=0;i<10;i++){ %>

    你好

<%}%>

 

其他写法示例:

<%Response.Write("你好")%>

<%

for(int i=0;i<10;i++){

    Response.Write("你好");

}

%>

<int age=30;>

 

 

不推荐这样写。但是一些简单的代码可以使用这种写法。比如输出值。

例:

在cs中有一个MyName的Page类的非私有的成员变量。显示在ASPX页面中。

<%=MyName%>

<%=GetMyName()%>

说明:= 等号 表示输出表达式的值。相对于调用Response.Write()方法。

 

aspx调用cs成员级别必须是protected或public,不能是private。

 

aspx,cs,dll之间的关系

通过反射可以看到:

1. cs的代码在实际执行的时候生成cs的类的子类。

2. aspx代码 与 cs代码 一起 经编译后生成在cs的类的子类中。 

 

补充:C#中一切可执行的最终都编译成Assembly。

 

 

Page类

1. Request,Response,Server是Page类的属性。是对content.Request,content.Response,content.Server的简化调用。

 

2. AppRelativeVirtualPath属性:获得页面相对于应用跟路径的路径,比如~/Default2.aspx

 

3.FindControl(string ctrlid) 根据控件的Id找到控件。该方法返回控件实例。一般情况下,需要访问控件可以直接使用控件Id。但有些场合,使用ListView等。

 

4. IsPostBack属性

 

5.Session属性

 

6. ResolveClientUrl(url)将虚拟路径转换为客户端访问时的路径。

比如ResolveClientUrl("~a/b.aspx")结果是a/b.aspx,这通常在ListView等控件的模板中输出HTML使用。基本就是对VirtualPathUtility.ToAbslute简化调用。考虑当前页面的相对路径,生成的路径短。该方法比较常用。

 

7.ResolveUrl("~a/b.aspx")的结果就是 /WebSite/a/b.aspx 。不考虑当前页面,就是对VirtualPathUtility.ToAbslute的调用。

 

 

补充:

显示转换类型:使用as运算符。

 

 

服务器控件与HTML控件

1. HTML控件

运行在浏览器端,与服务器无关。

 

2. ASP.NET服务器控件

经过ASP.NET高度封装。

 

3. runat="server"的HTML控件

asp.net页面中,对普通html控件添加runat="server"属性,即可以在服务器端操作html控件。这种html控件运行在服务器端,需要被服务器引擎渲染。

这种控件在服务器端仅可使用比较简单的HTML属性,不如ASP控件编写方便。

应用:如果没有被ASP.NET封装的控件。比如:<td>

 

原生的html<input>等,就是html控件。

asp标签的控件,即服务器控件。

 

website与webapplication

(1)在后台修改代码,webapplication,需要重启浏览器才能生效。website不要重启,直接生效。

(2)webapplication显示namespace,为项目名称,website不显示namespace。

WebSite是为了兼容asp转过来的开发人员的习惯而存在的,使用比较方便。但是不利于工程化开发,比如代码出错不容易发现,代码不分命名空间。

website与webapplication开发技术上没有任何区别,只是开发,调式习惯不同。

如果需要的话,在Visual Studio中可以把WebSite转换为webapplication。

 

asp.net的所有提交都是post,get方式几乎不可用。

Post提交数据时,浏览器中点刷新,会提示“重试”。这是Post的最大缺陷。

 

虚拟路径

1.HTTP的定位:/ 表示网站根目录、../ 表示上级目录、./表示当前目录。

例:网站为localhost中,/a.html 表示localhost/a.html 。

 

2.ASP.NET中~表示从应用程序目录开始定义。特殊路径表示“~”,该符号只能在服务器控件使用。

如果HTML控件或者需要在代码中转换的话就可以使用VirtualPathUtility.ToAbsolute("~/a/b1.aspx")就是虚拟路径转换为相对于应用根路径的全路径,也就是/WebSite/a/b1.aspx

 

VirtualPathUtility主要方法:

string AppendTrailingSlash(string virtualPath) 

    如果路径最后没有"/"则添加;

string Combine(string basePath,string relativePath)

    将两个路径合并。

string GetDirectory(string virtualPath)

    返回虚拟路径的目录部分。

string MakeRelative(string fromPath,string toPath)

    计算两个虚拟路径的相对路径。

string ToAbsolute(string path)

    转换为绝对路径。

 

IsPostBack属性

页面中

Page_Load(){

if(!IsPostBack)  //表示第一次加载页面。

{

}

}

IsPostBack表示是不是提交返回给服务器的数据处理。

所以如果!IsPostBack==true,则表示该过程是第一次加载页面,没有提交回服务器。

 

 

 

ViewState

ViewState存储非表单域,非value值的容器。所有webform都有viewstate。

注意:有些控件,是没有value概念的。则这些值无法提交给服务器,所以就放在viewstate中。而有value概念的控件,由于自身可以提交到服务器,所以不用放进viewstate,也能提交。

 

开发web页面,必须部分禁止viewstate。完成web页面之后,查看页面源码,如果viewstate的值很多,则必须要部分禁用viewstate。

 

禁用方法:

1.每个控件都有EnableViewState,设置false,则控件的viewstate就被禁用了。

2.禁用整个页面的ViewState的方法,

   在asp最上面配置区<%@ Page Language="C#" AutoEventWiroup="true" VodeFile="XXX.aspx.cs" Inherits="XXX"%>

 中放入EnableViewState="false"。

 

HTTP是无状态协议。ViewState可以使web应用变为有状态信息的。

 

ViewState的缺点

状态信息保存在隐藏字段中的缺点;加大网站的流量、降低访问速度,机密数据放到表达中会有数据前排等安全性问题。

 

注意:

禁用了ViewState就无法得到上次给客户端的值了。即禁用了ViewState之后,对写页面中的值无影响,但对读取会有影响。

 

 

ASP.NET中的超链接提交请求与表单提交请求

1. 通过表单提交数据至服务区,页面会将ViewState提交。有回发状态,IsPostBack=true。

2. 通过超链接提交,也就是通过Get方式提交。页面不会发送ViewState。也就是每一次超链接请求的IsPostBack=false,即每次超链接请求都是第一次请求。

注意:LinkedButton虽然看起来像超链接,但实际也是要提交表单的。

 

 

数据绑定控件

数据绑定分为数据源和数据绑定控件。

数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提者和数据使用者。

数据绑定控件通过数据源来对数据进行修改。

 

数据源有SqlDataSource,AccessDataSource,ObjectDataSource,LinqDataSource,EnityDataSource,XmlDataSource等(SiteMapDataSource是SiteMap专用数据源),由于大部分项目都不会页面直接连数据库,所以SqlDataSource,AccessDataSource不会使用,LinqDataSource,EnityDataSource只有在很极端的采用Linq、Enity Framework的项目中才会用。

XmlDataSource是处理XML数据时才可能会用。

ObjectDataSource是web开发中应用最广的数据源。

 

数据绑定控件有列表数据绑定控件:DropDownList、RadioButtonList、ListBox、CheckBoxList、BulletedList等。和复杂控件:DataGrid、GridView、DetailsView、FormView、ListView,Repeater、DataList等。

 

复杂控件中DataGrid已经不推荐使用。Repeater是最轻量级的组件,在互联网的前台用的最多。ListView是ASP.NET 3.5新增的控件,ListView是GridView,FormView,Repeater。DataList等控件的统一。这些控件的优点ListView都有。

 

 

ObjectDataSource用来将一个类(大部分情况类是使用DataSet)作为数据源,TypeName属性是数据源类的全名,有DeleteMethod,InsertMethod,SelectMethod,UpdateMethod等几个属性,分别为类中删,插,更新的方法名,这些方法可能有参数,参数的值通过DeleteParameters,UpdateParameters,InsertParameters等嵌套节点设置。

 

 

数据绑定控件可以使用Visual studio配置使得控件绑定到ObjectDataSource等。也可以使用手工方式绑定。

 

例:

BulletedList.DataSource=new int[]{1,2,3,4};//一般实现IEnumerable接口的数据都可以设置。

BulletedList.DataBind();//表示刷新数据显示。该句不能少。

 

数据绑定控件的AppendDataBoundItems属性,表示将数据绑定项追加到静态声明列表项上。

 

Reapter

轻量级,Repeat通常用于数据展示。不适合操组数据。

 

生产导向。

 

 

ListView

重量级,ListView方便操作数据,

 

 

 

 

 

错误页

配置错误页

配置web.config,配置customErrors区域。

    <customErrors mode="RemoteOnly" redirectMode="ResponseRewrite" defaultRedirect="MyErrorPage.aspx">

        <error statusCode="403" redirect="~/NoAccess.htm" />

        <error statusCode="404" redirect="~/FileNotFound.htm">

    </customErrors >

 

 

defaultRedirect表示,发生错误需要被现实的页面。

<error statusCode>是指定特殊的错误处理页面。

~/NoAccess.htm 表示虚拟路径。

 

mode有三个可选值(注意大小写):

 

On:

总是显示错误页面。
Off: 不使用错误页面。即不做任何异常处理。
RemoteOnly: 本机的访问显示调用堆栈等异常信息,对外部用户的现实定制错误页面。

说明:

1.一般设置mode="RemoteOnly",网站服务器的管理者可以在服务器的浏览器中看到详细错误信息,网站外部用户会显示异常处理页面。

2.演示异常处理页时,使用mode="On"。

 

redirectMode表示发生错误之后,页面跳转的方式。一般redirectMode有两种值"ResponseRewrite"和"ResponseRedirect"。默认为" ResponseRedirect "。

 

在错误处理时,如果要在错误页面中取得异常对象,必须设置redirectMode=" ResponseRewrite "。

因为如果是"ResponseRedirect",则表示客户端重定向,即客户端重新发送一次新HTTP请求给异常处理页面。由于是新的请求,异常处理页面无法取得之前一次请求的异常对象。

而"ResponseRewrite"表示直接从服务器输出页面给服务器,相对于在服务器内部做了页面跳转。没有新的请求,获得本次异常对象。所以必须采用这种方式。

 

 

使用asp页面

在asp页面中,可以处理异常信息,比如将异常写入日志中。

在asp中处理异常信息方式:

Page_Load(){

if(!IsPostBack)  //表示第一次加载页面。

{

    Exception ex=HttpContext.Current.Server.GetLastError(); //获得异常对象。

    //日志记录 ex.Message 和 ex.StackTrace 

}

}

 

注意,错误处理页面如果发生错误的话,就不能处理之前异常了。

 

在异常处理页面中判断Request.UserHostAddress来者之某些Ip可以看到异常,也可以读取Session,让网站后台管理员可以看到异常。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    ASP.NET学习积累的代码段

    ASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习积累的代码段.rarASP.NET学习...

    ASP.NET学习大全(整理) ASP.NET学习大全(整理)

    本资源"ASP.NET学习大全(整理)"是一个全面的教程集合,旨在帮助学习者系统地掌握ASP.NET的核心概念和技术。 1. **基础概念**: - ASP.NET架构:了解ASP.NET的基础框架,包括页面生命周期、事件处理模型以及如何...

    Asp.net学习文件

    这个“Asp.net学习文件”压缩包包含了一份名为"Asp.net夜话.pdf"的学习资料,这通常是一本深入浅出的教程或者是一位专家的经验分享,旨在帮助初学者或有经验的开发者更好地理解和掌握Asp.NET的核心概念和技术。...

    ASP.NET学习笔记

    总之,ASP.NET学习笔记涵盖了从基础到高级的诸多主题,包括但不限于ASP.NET的架构、Web Forms和MVC的区别、控件使用、身份验证与授权、数据库操作、路由和视图解析、ASP.NET Core的特性等。无论你是初学者还是有经验...

    asp.net学习资料汇总

    这个“ASP.NET学习资料汇总”显然是一份全面的学习资源集合,涵盖了从基础概念到进阶技巧的多个方面。 在“常用代码”部分,你可以期待找到ASP.NET开发中常用的代码片段,如页面生命周期管理、数据绑定、用户控件...

    asp.net 学习

    本压缩包包含的资源是关于ASP.NET的学习资料,包括“ASP.NET学习大全”,这可能是一本详细的教程或者一系列的学习笔记。 在学习ASP.NET时,首先需要理解其基本概念。ASP.NET不仅仅是一种编程语言,更是一个包含了...

    asp.net学习资料

    ASP.NET是微软公司推出的一种用于构建动态网站、...通过深入学习这些知识点,并结合提供的ASP.NET学习资料,开发者不仅可以理解ASP.NET的工作原理,还能熟练运用到实际项目中,构建出高效、稳定、可扩展的Web应用程序。

    ASP.NET学习手册

    **ASP.NET学习手册** ASP.NET是微软公司推出的一种用于构建Web应用程序的开发框架,它基于.NET Framework,旨在简化Web开发过程,提供高效、安全且可扩展的解决方案。本手册将深入探讨ASP.NET的核心概念和技术,...

    ASP.NET学习资料

    这个“ASP.NET学习资料”压缩包包含了针对初学者的基础知识,旨在帮助他们快速入门并掌握ASP.NET的核心概念。 在ASP.NET环境中,开发者通常使用C#作为编程语言,因为它是.NET Framework的主要支持语言之一。C#是一...

    ASP.NET学习大全(初学者整理过的笔记)

    这个“ASP.NET学习大全(初学者整理过的笔记)”包含了作者在学习过程中整理的重要概念、技术和实践,非常适合那些希望入门ASP.NET的开发者。 1. **ASP.NET概述** ASP.NET是一个强大的开发平台,它提供了丰富的工具...

    asp.net学习手册光盘代码

    《ASP.NET学习手册光盘代码》是一本由明日科技社出版的综合性教程,涵盖了ASP.NET技术的各个方面,旨在帮助读者从基础到高级逐步掌握这项强大的Web开发框架。书中的内容分为四大篇,分别是基础篇、核心篇、高级篇和...

    ASP.NET学习大总结+笔记

    这份“ASP.NET学习大总结+笔记”涵盖了从基础概念到高级特性的全面知识,是学习和巩固ASP.NET技术的宝贵资料。 一、ASP.NET简介 ASP.NET是服务器端的编程模型,它允许开发人员使用多种编程语言(如C#、VB.NET)创建...

    asp.net学习文档精华版

    这个“asp.net学习文档精华版”包含了作者在学习ASP.NET过程中积累的经验和解决问题的方法,是学习ASP.NET的宝贵资料。 1. **基础概念** - ASP.NET:它是.NET Framework的一部分,用于构建动态网站、Web应用程序和...

    ASP.NET学习大全经典总结

    本经典总结将深入探讨ASP.NET的学习要点,帮助你全面掌握这一强大的技术。 一、ASP.NET概述 ASP.NET是服务器端的编程模型,它允许开发者使用多种编程语言(如C#、VB.NET)来创建动态网页和Web服务。ASP.NET的核心...

    ASP.NET学习大全

    ASP.NET学习大全,包括以下文档: GridView导出excel 小山的TreeView数据绑定方法 ADO.NET在开发中的部分使用方法和技巧.txt ADO.NET中的视图和过滤器.doc ASP .NET - ArrayList对象.txt asp.net 2.0中TREEVIEW中...

    ASP.NET学习大全(整理)

    ASP.net 各种方法技巧全部...ASP.NET学习大全(整理)ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理) ASP.NET学习大全(整理)

    C#.NET ASP.NET学习资料目录(带链接).rar

    C#.NET ASP.NET学习资料目录(带链接).rarC#.NET ASP.NET学习资料目录(带链接).rarC#.NET ASP.NET学习资料目录(带链接).rarC#.NET ASP.NET学习资料目录(带链接).rarC#.NET ASP.NET学习资料目录(带链接).rar

    ASP.NET学习PPT

    这份“ASP.NET学习PPT”显然是一份关于如何使用ASP.NET进行应用开发的教程资料,适用于初学者和有一定基础的开发者,帮助他们深入理解和实践ASP.NET的技术要点。 在ASP.NET中,Web应用程序主要由服务器控件、页面...

    ASP.NET学习大全 总结

    本"ASP.NET学习大全"涵盖了从基础到高级的全方位知识,旨在帮助学习者系统掌握ASP.NET的核心概念和技术。 1. **ASP.NET架构与工作原理** ASP.NET基于HTTP协议,通过控件模型、页面生命周期和事件驱动模式来处理Web...

Global site tag (gtag.js) - Google Analytics