aspx与aspx.cs的关系
- 格式:docx
- 大小:134.09 KB
- 文档页数:6
关于动态静态化页面(shtml)1 个评论先谈一下本文会用到的三种网页格式,分别是HTML、SHTML、ASPX。
它们各有特点:HTML即为本文的主角:静态页面。
如果浏览器从服务器上请求一个HTML页面,服务器把该页面原封不动地发送给浏览器。
因此它的反应速度是最快的,而且对于cpu、内存等等的要求比较低。
ASPX是目前比较流行的动态网页格式。
ASP .NET页面的扩展名为 .aspx。
如果浏览器请求的是一个ASP .NET页面,服务器在把它回送到浏览器之前会处理页面中的所有可执行代码。
动态网页的一个特点是信息交互、及时更新、页面文件少、开发速度比较快。
但是它的一个严重的问题是在访问量比较大,而服务器的配置和资源比较有限的情况下,一些频繁的读写数据库、程序逻辑等等,会使得服务器负担不起而当机。
因此对于访问量比较大的网站,网页静态化是一个比较可靠的解决方案。
但是静态页面重复的内容比较多,在信息量比较大的网站,全HTML可以说是无论对于开发者或者使用者,都是缺乏人性化的工作。
例如我有一个显示内容的页面,它有左右两块,右边是文章内容,可能是长时间甚至永远不会变动的,左边是包含公告、新闻等的一些导航,更新速度比较快。
那如果左边的公告有了新的内容,为了让每个页面的信息都准确,那所有的页面都要重新制作,这操作起来明显很不方便。
于是就有了SHTML的存在。
SHTML 的一个特点就是在服务器会做一定的预处理,使得它可以用include file的方式,把若干个文件包含进来。
例如上例的页面,可以拆分为a.html和b.html,然后用c.shtml把这两个文件包含进来,那在更新的时候只需要更新a.html,而b.html不需要更新,这样可以减少大量的制作工作。
可能动态网页就是根据这个而产生的。
在中,这是最基本的控件思想。
以下是c.shtml的页面代码:<div class=”contaier”><div id=”left”><!-- #include file=”a.html”--></div><div id=”right”><!-- #include file=”b.html”--></div></div>因此,对于,可以采用输出shtml页面的方式,动态生成静态页面,来解决性能问题。
aspx是IE直接访问的页面,而ascx是用户控件,一般是用来重用,比如有二个aspx页面,有一部分代码一样,所一样的提取出来做成ascx,就可以重用了.如果单纯N个aspx页,就只能复制,粘贴,要修改时,就晕了.ascx不能直接访问只能插入aspx页面呈现.向页眉导航,页脚每个页都有,所以做好用户控件然后每个页拖进去就可以了ascx即WebUserControl,和WindowsApplication中的UserControl作用类似,主要用于代码的复用,使用之前需要在页首加饮用。
模块化的开发机制也常用ascx作为功能载体。
用众多的功能模块(每个模块包含多个UserControl)合成一个网站。
一个aspx文件能同时调用cs和ascx文件吗?当然aspx 有自己的cs,它调用的ascx也有自己的cs就是说aspx的cs文件与它调用的ascx文件是没有关系的!他们可以同时使用!关于.ASCX的用法的问题。
一个webform 工程中,假设有10个页面,这10个页面中如果在页面的某个位置(比如第一个页面在左上角,第二个页面在右下角,第三。
第十位置都不重复)都有2个固定的控件(假设是一个textbox 和一个button),他们外观相同,但他们后台的业务逻辑处理都不相同,我能否使用.ASCX 实现吗?可以啊,让控件接收参数做不同处理即可。
.NET当中的DLL文件和ASCX文件的问题,是不是说在DLL文件或是ASCX文件中写画面,然后在ASPX文件中引用.那ASPX文件里可以不写任何关于画面的代码是吗?有例子吗,请高手指点.能有例子吗?有例子更详细些.谢谢,我是初学者.那ASPX里写什么?只是引ASCX?ASCX写画面,后台写代码的话,我觉得和直接在ASPX里写画面,后台.CS文件写代码没区别.可不可以在ASCX文件中只作画面,然后引到ASPX里,在ASPX里写后台操作?在你的ASCX文件中写HTML代码,在ASCX.CS文件中写后台逻辑。
RBAC的基本思想RBAC(角色访问控制)的基本思想可简单地用图1来表示,即把整个访问控制过程分成两步:访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。
由于RBAC实现了用户与访问权限的逻辑分离,因此它极大的方便了权限管理。
例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。
用户权限在.NET中的设计与实现利用.NET中的用户控件实现权限控制的基本思想是:根据角色访问控制(RBAC)的基本原理,给用户分配一个角色,每个角色对应一些权限,然后利用中的用户控件(UserControl)来判断该用户对应的角色是否对访问页面有访问的权力。
下面将从数据库设计、添加角色和用户控件的使用等三方面来阐述具体实现过程。
1、数据库中表的设计首先,在数据库中设计功能模块表、功能表和角色表等三个表。
(1)功能模块表为了管理好用户的权限,首先要组织好系统的模块,为此设计了一个功能模块表。
见表1。
(2)功能表每个功能模块所具有的子功能称为功能,如商品管理模块goods(属于功能模块的范畴)包含商品信息查询、商品信息更新、商品信息删除、商品定价信息查询以及商品定价信息更新五种功能,功能表的设计见表2。
上面提到的例子可以作为这样几条记录分别插入功能模块表和功能表。
insert into TModule values(0,\'商品管理模块\',\'goods\',5);insert into Tfunction values(0,\'商品信息查询\',\'selectgoods\',0);insert into Tfunction values(1,\'商品信息更新\',\'updategoods\',0);insert into Tfunction values(2,\'商品信息删除\',\'deletegoods\',0);insert into Tfunction values(3,\'商品定价信息查询\',\'selectgoodsprice\',0);insert into Tfunction values(4,\'商品定价信息更新\',\'updategoodsprice\',0);(3)角色表角色表的设计关键在于角色值的定义,它是一个由0和1组成的类似二进制数的字符串。
⾸次请求返回状态码200,显然得到全部正⽂。
F5刷新,对Last-Modified 有效,它是让服务器判断是否需要读取缓存,所以,依然存在请求和返回数据。
状态码是304。
点击“转到”或者光标移⼊地址栏然后回车对Cache-Control 有效,是浏览器⾃⼰决定是否读取缓存,如果在缓存期限内,浏览器不会向WEB 服务器发送请求,我们可以看到send 和receive 的数据全部是0。
⽆交互,故⽆状态码。
ctrl+f5相当于是强制刷新,所以状态码200 OK ,返回全部正⽂数据。
Http 请求头缓存设置⽅法1、直接在.aspx 页⾯中设置最直接的,在.aspx 页⾯中添加⼀⾏如下代码:<%@ OutputCache Duration="3600" VaryByParam="None" %>表⽰将这个页⾯缓存1⼩时。
运⾏页⾯查看请求头信息:第⼀次运⾏,效果如图:再次请求页⾯点击“转到”或者光标移⼊地址栏然后回车,或者F5刷新页⾯,效果如图:注意:缓存对ctrl+F5强刷不起作⽤。
可以看到,设置后请求响应头中多了max-age 、Expires 、Last-Modified 这三个属性,并且Http 状态码也由200变成了304,说明我们成功设置了该页⾯的缓存。
对⽐两次请求头⾥的Cache-Control ,发现第⼀次是no-cache ,第⼆次是max-age=0,并且第三、第四。
次都是max-age=0,关于Cache-Control 值的说明如下:如果no-cache 出现在请求中,则代表浏览器要求服务器,此次请求必须重新返回最新⽂件(请求完成后,你会看到http 状态码是200);如果max-age=0出现在响应中,则代表服务器要求浏览器你在使⽤本地缓存的时候,必须先和服务器进⾏⼀遍通信,将etag 、 If-Not-Modified 等字段传递给服务器以便验证当前浏览器端使⽤的⽂件是否是最新的(如果浏览器⽤的是最新的⽂件,http 状态码返回304,服务器告诉浏览器使⽤本地缓存即可;否则返回200,浏览器得⾃⼰吧⽂件重新下载⼀遍)。
1.aspx文件:public void SetLabel(string str){bel1.Text = str; ;}ascx文件;protected void Button1_Click(object sender, EventArgs e){System.Web.UI.Page p = this.Page;Type pageType = p.GetType();MethodInfo mi = pageType.GetMethod("SetLabel");mi.Invoke(p, new object[] { "test!!!" });}2. 在自定义控件中定义这个控件的属性public Control LabelText{get{return bel1.Text;}}3用FindControl方法寻找Label lbl = (Label)WebUserControl1.FindControl("Label1");4。
委托(利用事件委托实现用户控件中的行为触发所在页面的处理函数)在日常的工作中,我们时常会遇到这样的需求:点击一用户控件中的服务器按钮,变更页面上该用户控件以外某处的数据显示。
这样就需要在发生该按钮点击行为时,触发其所在页面的相应处理函数。
在中,我们可以利用RaiseEvent语句来引发定义在所在页面后台代码文件中的相应处理方法,而在C#中,我们可不可以做到这点呢?回答当然是肯定可以实现的。
C#中我们可以利用事件委托来达到同样的效果。
下面,让我们来一步步地解决这个问题。
1、首先,在一aspx页面中包含一用户控件(RaiseControl.ascx),该用户控件内只含有一服务器端控件。
2、在该用户控件的后台代码中声明事件委托、定义事件成员并添加一事件监视函数。
代码如下://声明事件委托public delegate void PageChangeEventHandler(string psDeliver);//定义事件public event PageChangeEventHandler MyPageChange;//监视事件protected void OnPageChange(string psStr){if (MyPageChange != null){MyPageChange(psStr);}}3、在用户控件的按钮事件中,触发已经定义的MyPageChange事件。
asp\aspx\htm和html的区别每一个网页或者说是web页都有其固定的后缀名,不同的后缀名对应着不同的文件格式和不同的规则、协议、用法,最常见的web页的后缀名是.html和.htm,但这只是web页最基本的两种文件格式,今天我们来介绍一下web页的其它一些文件格式。
首先介绍一下html与htm关于HTML,HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言。
设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。
我们只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。
HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。
HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
关于HTM,实际上HTM与HTML没有本质意义的区别,只是为了满足DOS仅能识别8+3的文件名而已,因为一些老的系统(win32)不能识别四位文件名,所以某些网页服务器要求index.html最后一个l不能省略。
MSIE能自动识别和打开这些文件,但编写网页地址的时候必须是完全对应的,也就是说index.htm和index.html是两个不同的文件,对应着不同的地址。
值得一提的是UNIX系统中对大小写敏感,不吻合的话就可能报没有文件或者找不到文件。
其次介绍一下shtml和shtm关于shtml,shtml是一种基于SSI技术的文件,也就是Server Side Include--SSI 服务器端包含指令,一些Web Server如果有SSI功能的话就会对shtml文件特殊招待,服务器会先扫一次shtml文件看没有特殊的SSI指令存在,如果有的话就按Web Server设定规则解释SSI指令,解释完后跟一般html一起调去客户端。
WebApplication和WebSite区别相同点web应用程序可能是微软为了让程序员很好的从winform过渡到web 开发而保留了。
Web网站就完全要应用到web开发的。
其实两者之间没有什么大的区别。
不同点1、最主要的是编译模型不一样website发布的时候是对每个aspx 生成的代码文件单独编译所以在bin目录下面会生成很多类似App_Web_4xjy5_p1.dll的文件特殊目录App_Code中代码文件才编译成单独一个程序集。
这种设计可以单独生成一个页和该页程序集。
上传的时候可以只更新此页web应用程序发布的时候bin目录下面就一个dll文件但这个“网站”项目编译速度慢类型检查不彻底。
两个不同的ASPX可以生成相同的两个名称的类。
发布的时候也很慢会删除所有原始发布目录中的所有文件且复制所有新的文件。
并且中间还有停顿需要用户主动按覆盖文件的按钮才能发布。
2、Web网站Default.aspx显示有一个原有文件Default.aspx.csweb应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.csdesigner文件通常存放的是一些页面控件中控件的配置信息3、Web网站只有一个发布网站web应用程序有重新生成和发布两项4、Web网站在引用后出现一个bin文件夹那里存放dll和pdb文件web应用程序和一般的winform没有什么区别都有引用的是命名空间等5、Web网站则不可以作为类库被引用web应用程序可以作为类库被引用6、Web网站可以添加 文件夹包括bin、App_Codeweb应用程序可以添加文件夹中不包括bin、App_Code7、web应用程序还可添加组件和类Web网站则没有8、源文件虽然都是Default.aspx.cs但是web应用程序有命名空间多了一项System.Collections 空间引用9、Web应用程序在修改了页面底层的代码之后需要重新进行编译网站不需要重新编译10、网站在发布的时候会自动生成Dll文件但是每次的Dll文件名都不一样Web应用程序的项目会生成Dll文件11、Web应用程序会有解决方案和项目文件12、web应用程序在2002、2003中就存在了web网站是2005新发明的。
简单问题,.resx为后缀的是什么文件,当场给分总结:这个后缀为.resx的文件是由系统自动生成的。
建议不要删除。
resx 是aspx 界面设计时 的ide 需要记忆的资源,比如aspx 的名称,窗体的高度之类的aspx.resx 是资源文件,资源是在逻辑上由应用程序部署的任何非可执行数据。
通过在资源文件中存储数据,无需重新编译整个应用程序就可以更改数据。
问:resx为后缀的是什么文件,我打开好象是个什么数据库啊?_______________________________________________________________________________ _______________答1:XML格式的资源文件_______________________________________________________________________________ _______________答2:隐藏文件,在项目里你是看不到的。
_______________________________________________________________________________ _______________答3:那我想知道,我有一个程序,有D.asp,然后又有一个D.asp.cs,再有一个D.asp.resx是什么意思啊。
XML格式的文件是干什么的啊?_______________________________________________________________________________ _______________答4:aspx是页面文件cs是CSharp语言的后台代码文件resx是资源文件XML是一种前景广阔的标记语言,可以描述很多很多_______________________________________________________________________________ _______________答5:我是想知道他们三个文件有什么联系,什么叫后台代码文件?_______________________________________________________________________________ _______________答6:aspx 是网页或者说是三层中的最外层,表示层,可以直接理解为准html 文件,在使用Codebehind 技术时通常内容只是用来表示元素的位置大小,属性事件等并没有程序代码cs 是程序代码文件,经编译后使用Codebehind="WebForm1.aspx.cs" 技术捆绑编译后的DLL 位于bin 目录resx 是aspx 界面设计时 的ide 需要记忆的资源,比如aspx 的名称,窗体的高度之类的(因为IDE 在载入工程时并不是从cs 文件内部获得资源),你可以使用vs2003 自带的ResEditor (位于.net 安装目录的示例文件夹,你可以搜索一下)打开该文件就明白了本文来自: 站长() 详细出处参考:/web/721/269404.htm。
aspx和asp,JSP的区别三者都是网络编程语言,目前流行的还有JSP,asp是一个好的网络编程语言,用的是VBscript或Jscript简单易学,一点编程基础的人都可以学会,但是缺点是组件函数太少,安全性差,无任何扩展,asp 代码与html混和编写,虽然可以模块化,还是有一点的乱,可重用性太差,很多人宁可重写也不愿意修改别人的代码。
aspX是asp的后续加强版,面向对象的网络编程,代码结构层次分明,分离编写,使人一看就能明白!扩展性强,使用的是C#.net或编写,安全性得到了加强.PHP,函数丰富,功能强大,安全性比asp要好。
JSP 函数丰富,功能强大,面对象的网络编程语言,速度很快,安全性高,无限扩展性,对于安全性较高的网站都使用此编写,如银行,证券!目前只有aspX 可以与jsp一较高下。
aspx, php, jsp, jQuery, ajax之间的关系?html超文本标记语言(Hyper Text Mark-up Language)是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。
HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。
asp活动服务器网页(Active Server Page) 是微软的在服务器端运行的动态网页文件,通过IIS解析执行后可以得到动态页面。
ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。
利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。
aspx活动服务器网页扩展(Active Server Page eXtensible),是微软搞出的,又叫asp+,是在服务器端编译执行的,相对asp来说,安全性、开发速度和运行速度都有所提高,编程理念也不一样。
php超级文本预处理语言(PHP:Hypertext Preprocessor)是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。
了解c#中的三层架构(DAL,BLL,UI)了解c#中的三层架构(DAL,BLL,UI)⼀提三层架构,⼤家都知道是表现层(UI),业务逻辑层(BLL)和数据访问层(DAL),⽽且每层如何细分也都有很多的⽅法。
但具体代码怎么写,到底那些⽂件算在哪⼀层,却是模模糊糊的。
下⾯⽤⼀个简单的例⼦来带领⼤家实战三层架构的项⽬,这个例⼦只有⼀个功能,就是⽤户的简单管理。
⾸先建⽴⼀个空⽩解决⽅案,添加如下项⽬及⽂件1、添加 Web Application项⽬,命名为UI,新建Web Form类型⽂件User.aspx(含User.aspx.cs)2、添加ClassLibrary项⽬,命名为BLL,新建Class类型⽂件UserBLL.cs3、添加ClassLibrary项⽬,命名为DAL,新建Class类型⽂件UserDAL.cs。
添加SQLHelper引⽤。
(这个是微软的数据访问类,也可以不⽤,直接编写所有的数据访问代码。
我⼀般⽤⾃⼰写的数据访问类DataAccessHelper )。
4、添加ClassLibrary项⽬,命名为Model,新建Class类型⽂件UserModel.cs5、添加ClassLibrary项⽬,命名为IDAL,新建Interface类型⽂件IUserDAL.cs6、添加ClassLibrary项⽬,命名为ClassFactory相信⼤家已经看出来了,这个和Petshop的⽰例没什么区别,⽽且更简单,因为在下也是通过Petshop学习三层架构的。
但⼀些朋友对于这⼏个项⽬所处的层次,以及它们之间的关系,可能⽐较模糊,这⾥逐个说明⼀下:1、User.aspx和User.aspx.cs这两个⽂件(以及⽂件所属的项⽬,下⾯也是如此,不再重复强调了)都属于表现层部分。
User.aspx⽐较好理解,因为它就是显⽰页⾯了。
User.aspx.cs有些⼈觉得不应该算,⽽是要划到业务逻辑层中去。
如果不做分层的话,那么让User.aspx.cs来处理业务逻辑,甚⾄操作数据库都没什么问题,但是做分层的话,这样就不应该了。
aspx与ascx,ashx的用法总结做开发的对.aspx,.ascx和.ashx都不会陌生。
关于它们,网上有很多文章介绍。
“纸上得来终觉浅,绝知此事要躬行”,下面自己总结一下做个笔记。
1、.aspxWeb窗体设计页面。
Web窗体页由两部分组成:视觉元素(html、服务器控件和静态文本)和该页的编程逻辑(VS中的设计视图和代码视图可分别看到它们对应得文件)。
VS将这两个组成部分分别存储在一个单独的文件中。
视觉元素在.aspx 文件中创建。
2、.ascx的用户控件,是作为一种封装了特定功能和行为(这两者要被用在Web应用程序的各种页面上)的Web页面被开发的。
一个用户控件包含了html、代码和其他Web或者用户控件的组合,并在Web服务器上以自己的文件格式保存,其扩展名是*.ascx。
里的缺省配置并不允许Web客户端通过url来访问这些文件,但是这个网站的其他页面可以集成这些文件里所包含的功能。
3、.ashx前面两个都太熟悉了,这个才是要讲的重点。
(1)使用举例.ashx文件是主要用来写web handler的。
使用.ashx 可以让你专注于编程而不用管相关的web技术。
我们熟知的.aspx是要做html控件树解析的,.aspx包含的所有html实际上是一个类,所有的html都是类里面的成员,这个过程在.ashx是不需要的。
ashx必须包含IsReusable属性(这个属性代表是否可复用,通常为true),而如果要在ashx文件用使用Session必须实现IRequiresSessionState接口.一个简单的实现修改登录用户密码的示例:复制代码代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Web.SessionState;namespace Test{public class HandlerTest : IHttpHandler, IRequiresSessionState{public void ProcessRequest(HttpContext context){context.Response.ClearContent();context.Response.ContentType = "text/plain";context.Response.Cache.SetCacheability(HttpCacheability.N oCache); //无缓存string action = context.Request.Params["action"]; //外部请求if (action == "modifyPwd") //用户改密码{string oldPwd = context.Request.Params["pwd"];//在ashx文件用使用Session必须实现IRequiresSessionState 接口//Session["LogedUser"]是登录用户的会话,用户名和密码都是testif (oldPwd.ToUpper() != ((context.Session["LogedUser"]) as Customer).Password.ToUpper()) //用户输入的旧密码和当前登录用户的不相同{context.Response.Write("旧密码输入错误!");}else{context.Response.Write("旧密码输入正确!");}}context.Response.End();}public bool IsReusable{get{return true;}}}}客户端的调用(js和页面部分):复制代码代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ASHXTest.aspx.cs" Inherits="ASHXTest" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml"><head runat="server"><title>mytest</title><script type="text/javascript">function $(s) { if (document.getElementById) { return eval('document.getElementById("' + s + '")'); } else { return eval('document.all.' + s); } }function createXMLHTTP() {var xmlHttp = false;var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for (var i = 0; i < arrSignatures.length; i++) {try {xmlHttp = new ActiveXObject(arrSignatures[i]);return xmlHttp;}catch (oError) {xmlHttp = false; //ignore}}// throw new Error("MSXML is not installed on your system.");if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {xmlHttp = new XMLHttpRequest();}return xmlHttp;}var xmlReq = createXMLHTTP();// 发送ajax处理请求(这里简单验证旧密码的有效性)function validateOldPwd(oTxt) {var url = "/HandlerTest.ashx?action=modifyPwd&pwd=" + escape(oTxt.value); //.ashx文件xmlReq.open("get", url, true);xmlReq.setRequestHeader("If-Modified-Since", "0");xmlReq.onreadystatechange = callBack;xmlReq.send(url); // 发送文本}function callBack() {if (xmlReq.readyState == 4) {if (xmlReq.status == 200) {alert(xmlReq.responseText); // 接收文本}else if (xmlReq.status == 404) {alert("Requested URL is not found.");} else if (xmlReq.status == 403) {alert("Access denied.");} elsealert("status is " + xmlReq.status);}}</script></head><body><form id="form1" runat="server"><div><input id="txtOldPwd" type="text" onblur="validateOldPwd(this)" /></div></form></body></html>分析:a、以前我们通常都是通过一个简单的aspx文件实现的功能,其实通过ashx也可以。
精品文档1.下列不属于textbox控件属性的是()A、 textB、readonlyC、IDD、 Page_Load2.在 中,文本框控件TextBox 允许多种输入模式,包括单行、多行和密码输入模式,这是通过设置其()属性来区分的。
A、 StyleB、TextModeC、 TypeD、 Input3.上传文件一般使用以下哪个控件()A 、 label B、 textbox C、 listbox D、 fileupload4.在 C#中,关于continue和break用于循环时,以下说法正确的是()A、 break 是退出整个循环语句,执行循环后面的语句B、 continue是退出整个循环语句,执行循环后面的语句C、 break 是中断本次循环,进入下一次的循环D、 continue 是中断整个循环5.当你在编写一个 应用程序,实现一个会员的注册页面,你要使用ASP 的内部控件来实现职业的选择,此时()控件应该是首选A 、 CheckBox B、 ListBox C、DropDownList D 、 TextBox6.当有用户请求Web页面时,会触发()事件A、 Application_Start()B、 Session_Start()C、 Application_End()D、Session_End()7.设置控件属性的方法有()A 、设计视图和源视图B、组件视图和逻辑视图C、控件视图和源视图D、设计视图和逻辑视图8.在 的内建对象中,必须要有Lock 和 Unlock 方法以确保多个用户无法同时改变某一变量的对象是()A 、 CacheB 、Session C、 Request D 、Application 9. Application对象的默认有效期为多少分钟?()A 、 10B、 15C、20D、应用程序从启动到结束10.在 C#中,下列说法错误的是()A、可以和 JavaScript做兼容开发B、 C#语言是微软公司开发的C、可以开发 C\S 架构的网站D、不是面向对象的语言11. 支持多种语言它的缺省语言是()A 、HTML B、 JavaScript C、 Visual Basic D 、 C#12.若希望程序从某一页面开始运行,下列操作可行的是()A、选中该页面右键选择“生成页”B、选中该页面右键选择“打开”C、选中该页面右键选择“查看标记”D、选中该页面右键选择“设为起始页”13.当服务器控件的事件需要立即回传给服务器以得到响应时,应该将它的()属性设置为true。
aspx与aspx.cs的关系在vs中,有很多朋友问起,在一个网站项目中的aspx和aspx.cs文件的关系,现在就归纳如下:可以把aspx文件分成三部分:●∙有run=”server”属性的标签●∙<% %>●∙标准HTML标签再算上aspx.cs,一共是四块,我们分别来说他们的关系。
(图一)我们来做个例子,结合上面的例子来看一下吧。
我们新建一个网站,页面如下:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Defa ult" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xht ml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div><asp:Button ID="But_Yes" runat="server" Text="Button" /><% int i = 10;this.k = i;%></div></form></body></html>后参代码如下:using System;using System.Configuration;using System.Data;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;public partial class _Default : System.Web.UI.Page{int j = 10; //私用成员protected int k=100; //保护成员protected void Page_Load(object sender, EventArgs e){But_Yes.Text = "确定";}}对这个例子我们来分析一下。
aspx页⾯中的html标签中的值传到aspx.cs⽂件中的⽅法在html中:name指的是⽤户名称,ID指的是⽤户注册是系统⾃动分配给⽤户的⼀个序列号。
name是⽤来提交数据的,提供给表单⽤,可以重复;id则针对⽂档操作时候⽤,不能重复。
如:document.getElementById();⼀、ID是在客户端脚本⾥⽤!NAME是⽤于获取提交表单的某表单域信息,在form⾥⾯,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定name。
⼆、以下元素input、select、form、frame、iframe⽤name,⽽以下元素table、tr、 td、div、p、span、h1、li⽤id,表单元素(form input textarea select)与框架元素(iframe frame)⽤ name,这些元素都与表单(框架元素作⽤于form的target)提交有关, 在表单的接收页⾯只接收有name的元素, 赋ID的元素通过表单是接收不到值的.当然上述元素也可以赋ID值, 赋ID值的时候引⽤这些元素的⽅法就要变⼀下了.赋 name: document.formName.inputName document.frames("frameName")赋 ID : document.all.inputID document.all.frameID只能赋ID不能赋name的元素:(除去与表单相关的元素都只能赋ID)body li a table tr td th p div span pre dl dt dd font b 等等举个简单的例⼦<form name="form1">⽤户名:<input type=text name="username" id="username">密码:<input type=password name="password" id="pwd"></form>如果我要获得⽤户名和密码;JS⽤name获得的话,就得写成ername.value;document.form1.password.value;⽤id获得:docuement.getElementById("username");docuement.getElementById("pwd");有时候name 可能会出现相同的名字,所以这时候我们⽤name获得就⽆法确定获得的是哪个值了。
.aspx(或.asp)文件与.html(.htm)文件的区别与联系分类:.net 2013-08-05 20:12 1870人阅读评论(47) 收藏举报目录(?)[+]由于都是用于描述网页文档的文件,自学起就对两者之间的关系很好奇主要的区别在于,当用户请求页面时,它们在服务器的端的处理不同下图解释客户端请求页面时,服务器端的处理流程:.html文件Ø .html文件是基于HTML的静态网页,它的内容是固定不变的。
其页面内容使用的仅仅是标准的HTML代码,最多再加上流行的gif、flash等格式的动态图片,还有产生动态的字幕等动画效果。
Ø 当客户机通过IE浏览器向Web服务器请求提供网页内容时,服务器仅仅是将已经设计好的静态HTML文档传送给用户浏览器。
.aspx文件.aspx是 页面的扩展名。
它无非是在静态HTML网页里面嵌入了动态的指令(这些动态指令是由各种脚本语言编写的,是由IIS服务器上的脚本引擎来执行的)而已。
如果浏览器请求某张 页面,那么在把结果发回浏览器之前,服务器首先会处理页面中的可执行代码(即,脚本语言代码)。
也就是说,一个asp网页主要包含两个部分:⑴ HTML静态网页要素:由IE浏览器解释执行⑵ asp脚本命令:由IIS脚本引擎解释执行对比1:我们分别在html页和aspx页插入脚本语言,对比运行效果Html测试:Aspx测试:说明:静态HTML语言的要素定义的是数据如何显示,而不能如何动态生成数据,所以单纯使用HTML制作的网页就是静态的。
对比2:在浏览器端对应的页面,右击—>查看源码(下面称客户端源码),我们对比客户端源码与服务器端程序员编写的源码(下面称服务器端源码)是否一致Html测试:Aspx测试:说明:Web服务器并未对静态的html页做任何处理就直接发送给所请求的浏览器,然后由浏览器端的解释器进行内容解释并显示结果。
其实,对于静态网站(由静态的HTML网页构成的网站)而言,Web服务器确实不是必需的。
VS文件后缀名大全详解VS文件后缀名大全详解tags:文件后缀 aspx.sln:解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息。
.csproj:项目文件,创建应用程序所需的引用、数据连接、文件夹和文件的信息。
.aspx:Web 窗体页由两部分组成:视觉元素(HTML、服务器控件和静态文本)和该页的编程逻辑。
Visual Studio 将这两个组成部分分别存储在一个单独的文件中。
视觉元素在.aspx 文件中创建。
.ascx:的用户控件(也叫做pagelets),是作为一种封装了特定功能和行为(这两者要被用在Web应用程序的各种页面上)的Web页面被开发的。
一个用户控件包含了HTML、代码和其他Web 或者用户控件的组合,并在Web服务器上以自己的文件格式保存,其扩展名是*.ascx。
里的缺省配置并不允许Web客户端通过URL来访问这些文件,但是这个网站的其他页面可以集成这些文件里所包含的功能。
.aspx.cs:Web 窗体页的编程逻辑位于一个单独的类文件中,该文件称作代码隐藏类文件(.aspx.cs)。
.cs:类模块代码文件。
业务逻辑处理层的代码。
.asax:Global.asax 文件(也叫做 应用程序文件)是一个可选的文件,该文件包含响应 或 HTTP 模块引发的应用程序级别事件的代码。
.config:Web.config 文件向它们所在的目录和所有子目录提供配置信息。
.aspx.resx/.resx:资源文件,资源是在逻辑上由应用程序部署的任何非可执行数据。
通过在资源文件中存储数据,无需重新编译整个应用程序即可更改数据。
.XSD:XML schema的一种.从DTD,XDR发展到XSD.pdb:PDB(程序数据库)文件保持着调试和项目状态信息,从而可以对程序的调试配置进行增量链接。
.suo:解决方案用户选项,记录所有将与解决方案建立关联的选项,以便在每次打开时,它都包含您所做的自定义设置。
aspx与aspx.cs的关系
在vs中,有很多朋友问起,在一个网站项目中的aspx和aspx.cs文件的关系,现在就归纳如下:
可以把aspx文件分成三部分:
●∙有run=”server”属性的标签
●∙<% %>
●∙标准HTML标签
再算上aspx.cs,一共是四块,我们分别来说他们的关系。
(图一)
我们来做个例子,结合上面的例子来看一下吧。
我们新建一个网站,页面如下:
<%@Page Language="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Defa ult"%>
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0
Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1"runat="server">
<div>
<asp:Button ID="But_Yes"runat="server"Text="Button"/>
<% int i = 10;
this.k = i;
%>
</div>
</form>
</body>
</html>
后参代码如下:
using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class_Default : System.Web.UI.Page
{
int j = 10; //私用成员
protected int k=100; //保护成员
protected void Page_Load(object sender, EventArgs e)
{
But_Yes.Text = "确定";
}
}
对这个例子我们来分析一下。
首先,我们要发布这个,会看到发布的文件有如下图所示:
(图二)
(图三)
我们主要看Default.aspx和bin中的这个dll,现在我们用反身工具Red Gate’s .NET Reflector来查看这个dll文件,发现在这个文件中,只有一个类_Defaule,如下图:
(图四)
好,我们已经把知识都准备好了,接下来分析图一。
按照图一的说法,编译成dll后,这个_Default这个类中应该有包括aspx.cs文件中的和aspx中有run=”server”属性的标签,当然,在类中就成为一个字段,并且是控件类型的字段了。
我们在图四中可以看出,在aspx.cs
中的j,k和aspx中的form1表单和But_Yes按钮都可以看到,但看不到<%%>中的i。
aspx.cs和aspx中有run=”server”属性的标签是怎么样编译在一个
类中的呢?原因在aspx.cs中,类_Default前的关键partial的功劳,我们都知道,这是一个分部类的关键字,就是可以把一个类分成两块来写,或分到两个文件中去写,aspx.cs是一部分,另一部分呢?另一部分就是在aspx中用
run=”server”属性的签标,这些标签成为_Default类的一个字段,所以我们能在aspx.cs中能访问到这些标准。
我们接下来再看图一,在有请求到达服务端时,服务端就会把aspx中<%%>生成一个类,并且这个类是继承_Default这个类的,这样也就是说,在<%%>中的代码,能访问到aspx.cs中_Default中的非私有变量,也就是我们访问不到_Default类中的j,但能访部到该类中的k。
最后,_Default的子类和HTML代码在IIS和CLR的协作下,生成页面
文件发送给客户端。
综上我们可以看出,aspx.cs文件和服务器端控件生成一个类,<%%>生成一个类,后面的类是在运行时生成,它是继承前面的类,最后再结合aspx文件中的HTML生成页面文件发送给客户。
(以上是在vs2008测试通过)。