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应用程序,更改项目名称,点击确 ...
随机推荐
- 对象排序,compareTo
第一个例子 /*为了比较,让自己的类实现Comparable接口,按照自己想要的排序方式重写compareTo *Map只是提供了对键的排序,但是当我们需要对值排序时就的提供我们自己的比较器 这里 只 ...
- C# 拆箱与装箱 要严格控制,数量多起来严重影响效率
int i = 5; object o = i; int j = (int)o; IComparer x = 5; 1. o的对象必须为一个引用,而数字5不是,则发生了装箱: 运行时将在堆上创建一个包 ...
- Android 动画分类
一:Tween Animation 动画类型 下面先来看看Android提供的动画类型.Android的animation由四种类型组成 在XML文件中: alpha 渐变透明度动画效果 ...
- webpack学习笔记--安装
1 首先要安装node Node.js 自带了软件包管理器 npm,Webpack 需要 Node.js v0.6 以上支持 2 npm install webpack -g 通常我们会将 Webp ...
- 日常积累之JSON.stringify和JSON.parse substr
1.substr(start,len) 从字符串中读取内容,第一个参数是读取的首位置,如果为负数,则从末尾倒数计数. 第二个参数是要读取的长度. eg: var str = "silence ...
- JAVA中的正则表达式
正则表达式:是字符串内容的匹配模板 正则表达式本身就是一个字符串 正则表达式的模糊符号: 一个[ ]代表一个字符,括号里面表示可以选择那些字符 { }用来表示前面这个正则表达式出现的次数 ?+* 这三 ...
- windows7 64,32位下scrapy爬虫框架的环境搭建
适用于python 2.7 64位安装 一.操作系统:WIN7 64位 二.python版本:2.7 64位(scrapy目前不支持3.x) 不确定位数的,看图 三.安装相关软件:(可以从我的百度网盘 ...
- Windows安装MySQL5.7.17
1. 在MySQL官网 http://dev.mysql.com/downloads/mysql/ 上面下载ZIP安装包(第二个:Windows (x86, 64-bit), ZIP Archive) ...
- 用orb-slam2跑RGB-D Example中的TUM Dataset
链接在此:https://github.com/raulmur/ORB_SLAM2 1.按照要求下载数据集,我下载的是rgbd_dataset_freiburg2_pioneer_360,将其解压到你 ...
- node.js+socket.io安装
最近做安卓遇到一个网络包的bug,服务端使用node做的,通讯用socket.io,但是服务端没法调试,没办法,还是自己搭建一个服务器端吧,索性买了阿里云的ecs测试,之前也配置过node+socke ...