asp.net初识
请求=========处理=============响应
不是服务器读网页、表单,而是我们向服务器提交数据
1、asp.net 服务器端控件是ASP.NET对HTML的封装,ASP.NET会将服务器端控件转换成HTML代码返给浏览器。
2、在服务器端控件的visible属性如果设置为false,那么不会生成相应的HTML代码,控件的HTML都不存在;这与前台的display="none";不一样,后者还会存在相应的html代码
3、aspx文件:用于表述网页的样子
4、aspx窗体中的控件与html中扽控件是一样的
5、Webapplication与Website的区别: a、(Webapplication)在文件中修改代码后必须得重新以浏览器的形式查看才能看到修改后的效果;Website刷新即可看到效果(每次修改以后点击"生成解决方案"也能立即看到修改效果). b、(Website)不需要创建命名空间,但是不利于工程化开发(比如代码出错不容易发现,代码不分命名空间)
6、一般处理程序: ashx: a.html页面中from表单提交地址为(action="XX.ashx")一定要设置name属性 b.在ashx中,通过context.Request["标签name值"];得到文本框输入的值;通过context.Response.Write("XX");向浏览器发送数据;通过
7、aspx中将Web虚拟路径(/images/1.jpg)转换为磁盘全路径(d:/wwww/mysite/images/1.jpg)的方法是 HttpContext.Current.Request.MapPath("/XXX.html")。 ashx中: //读取html模版 string path = context.Server.MapPath("No2.html"); //获得相应的html路径 string concent = System.IO.File.ReadAllText(path); //读取html文件 concent = concent.Replace("占位符",变量); //替换html中占位符的值 context.Response.Write(concent); //输出 string name = context.Request["uName"]; if (string.IsNullOrEmpty(name)) { context.Response.Write("直接进入..."); } else { context.Response.Write(name+"您好"); }
8、asp.net:PostBack——提交回来(刚进入页面的时候,和输入后的内容重新提交给处理程序) ispostback:属性的值来确定页面是第一次呈现还是正在响应回发。IsPostBack=false时表示是第一次请求,当IsPostBack=true时,表示是非第一次请求。 Http 是请求、响应的模型,服务器不会来读取浏览器的网页,能够得到的就是客户端网页提交过来的数据 如果访问 Hello2.ashx ,多次点击刷新,都是 “ 直接进入 ” 如果提交表单,再多次点击刷新,都是 “ 提交进入 ” 所有表单都是提交的以 name 为 key ,以 value 为值的内容,其他属性是不会被提交到服务器的。
9、get与post:get是通过url传递表单值,post通过url看不到 get表单域的值; 传递的数据量是有限的,如果要传递大数据量不能用 get,比如type="file"上传文章、type="password"传递密码或者<textarea>发表大段文章, post则没有这个限制;post会有浏览器提示重新提交表单的问题(是否刷新表单),get则没有(加分的回答)。对于Post的表单重新敲地址栏再刷新就不会提示重新提交了,因为重新敲地址就没有偷偷提交的数据了
10、为什么单使用div服务器取不出值:因为不是服务器读网页、表单,而是浏览器搜集表单中输入的数据,形成请求参数发给服务器。没有把div当前的innerText发给服务器 没有办法将div的值提交给服务器,只有设定了name的input、select、textarea的value属性才会被提交给服务器 解决方法:浏览器需要用一个隐藏字段将上一次的值保存下来——<input type="hidden" name="number" value="@result" /> <div>@result</div>,使得隐藏字段的value与div中的值相同
11.ViewState原理:Label版本的值存到了ViewState中,TextBox版本的不用存,因为TextBox就是input自己就会提交给服务器,不需要隐藏字段 说Input版本(TextBox)自增和Div版本(Label)的不同 他就是用来存一些没有value的标签的值
12.aspx(webform)中设置控件的背景颜色: txt1.BackColor = System.Drawing.Color.Red; 设置宽度:txt1.Width = new Unit(0,UnitType.Pixel);——宽度为0,单位px txt1.Width = new Unit(txt1.Width.Value+10);——控件的宽度每次增加10
13.aspx页面顶部的配置文件增加EnableViewState="false" 意味着页面禁用viewstate,依赖于viewstate的将失效 禁用ViewState以后TextBox版本不受影响,Div版本受影响,因为input的value不依靠ViewState。禁用整个页面的,在aspx的Page指令区加上EnableViewState="false" .内网系统、互联网的后台可以尽情的用ViewState。 即使禁用viewstate在请求没有结束之前,也能读出设置的值 当禁用viewstate就读不到上次客户端的值,写入到浏览器的值不会受影响
14.HTTP无状态协议:服务器不记的上次给了浏览器什么,浏览器需要记住这些值(input就是记到value中,对于其他的值就要放到隐藏字段中,比如ViewState),下次再提交服务器的时候就要把上次的值提交给服务器,让他想起来。 如果要知道上一次的状态,一个方法是在对浏览器响应结束之前将状态信息保存到页面表单中,下次页面再向服务器发出请求的时候带上这些状态信息,这样服务器就能根据这些状态信息还原上次的状态了,类似于去看病的病历本。
asp.net初识的更多相关文章
- ASP.NET 初识Cookie
1.ASP.NET中使用Cookie 0.说明 Cookie存在客户端电脑上,Session存在服务器上,所以保存登录信息等敏感信息时不能使用Cookie,用户个性化设置可以使用Cookie 1.新建 ...
- asp.net——初识多线程
1.首先讲解一下什么是线程(该定义是参考线程的百度百科) 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元.一个标准的线程由线程ID,当前指令指针( ...
- asp.net --> 初识WCF
对于刚开始接触wcf的同志,可以有效的理解wcf的使用场景. 引用该文章(点击查看),简单的介绍wcf的使用.另一篇文章(点击查看),和上述文章内容差不多.
- 解读ASP.NET 5 & MVC6系列(2):初识项目
初识项目 打开VS2015,创建Web项目,选择ASP.NET Web Application,在弹出的窗口里选择ASP.NET 5 Website模板创建项目,图示如下: 我们可以看到,此时Web ...
- 初识ASP.NET 5中的Sake与KoreBuild
从github上签出基于ASP.NET 5的MVC 6的源代码进行编译,发现有2个编译命令: build.cmd是针对Windows的编译命令,build.sh是针对Mac/Linux的编译命令,这本 ...
- ASP.NET Core 认证与授权[5]:初识授权
经过前面几章的姗姗学步,我们了解了在 ASP.NET Core 中是如何认证的,终于来到了授权阶段.在认证阶段我们通过用户令牌获取到用户的Claims,而授权便是对这些的Claims的验证,如:是否拥 ...
- .net core系列之初识asp.net core
.net core已经发布了2.0版本,相对于1.0的有了很大的完善,最近准备在项目中尝试使用asp.net core,所以就进行了一些简单的研究. 初识asp.net core分为以下几个部分: 1 ...
- ASP.NET Identity入门系列教程(一) 初识Identity
摘要 通过本文你将了解ASP.NET身份验证机制,表单认证的基本流程,ASP.NET Membership的一些弊端以及ASP.NET Identity的主要优势. 目录 身份验证(Authentic ...
- 初识ASP.NET MVC
我们首先从创建ASP.NET MVC项目开始.打开Visual Studio,在文件菜单中选择新建-> 项目,然后在模板中选择Web,接着选择ASP.Net Web应用程序,更改项目名称,点击确 ...
随机推荐
- Java动态代理与Cglib库
JDK动态代理 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在 ...
- centos 开机启动服务
一.启动脚本 /etc/rc.local 启动 最简单的一种方式,在启动脚本 /etc/rc.local (其实 /etc/rc.local 是/etc/rc.d/rc.local 的软链接文件,实际 ...
- SQL Server Reporting Service(SSRS) 第一篇 我的第一个SSRS例子
很早就知道SQL SERVER自带的报表工具SSRS,但一直没有用过,最近终于需要在工作中一展身手了,于是我特地按照自己的理解做了以下总结: 1. 安装软件结构 SSRS全称SQL Server Re ...
- contiki-process_run()
process_run()函数位于main函数中 ) { do { } ); idle_count++; } 找到函数的声明处: /** * Run the system once - call po ...
- ime-mode
2016-08-18 ime-mode 用户输入法控制,主要是防止用户输入文本符号等(比如电话号码输入时) (设定值) auto・・・和没设定一样 active・・・激活本地输入法(如中文),用户可以 ...
- mysql5.7下的timestampn Error : Invalid default value for 'timestamp'
表格创建是爆了个错 Error : Invalid default value for 'timestamp' 参考:http://www.jb51.net/article/71107.htm 这版本 ...
- JS根据登录的城市不同调用不同的内容
这个思路就是通过js获取访问客户的IP地址,根据IP接口判断IP的所属城市 1.先引入ip接口的js文件,网上有很多,这里用的是新浪的(感谢新浪) <script type="text ...
- C++中的一些小知识
判断字符是否为数字 在C/C++中有isdigit()来判断一个字符是否为数字 原型:int isdigit(char c); 用法:#include <ctype.h> (C语言):#i ...
- Java 根据当前时间获取明天、当前周的周五、当前月的最后一天
private Date getDateByType(Date date, Integer type) { Calendar calendar = Calendar.getInstance(); ca ...
- for循环每次展示固定条数的数据的写法。
第一种是一组json数据实现分页的效果,也就是每一次展示5条数据.第二种场景是每一秒展示4条数据,直到全部显示完.两种思路都做个笔记记录下. var nums = 5; //每页出现的数量 var p ...