下载图片处理

T_UsersTableAdapter adapter = new T_UsersTableAdapter();

var data = adapter.GetDataById(int.Parse(context.Session["UserId"].ToString()));

var user = data.Single();

if (user.Level == 1)

{

string PicPath = "~/img/"+filename;

if (PicPath.IndexOf('.')!=6)

) //此处有漏洞风险,防止用户通过拼凑请求参数的方法非法下载网站内源代码。

{//PicDownload2.ashx?FileName=../PicDownload2.ashx.cs.这样就可以下载了,所以要判断下载的文件路径是否在img目录下的,如果不是则不让下载。

context.Response.WriteFile(PicPath);

}

}

M秒后自动跳转到其他页面:

1.<meta name=”refresh” content=”3” url=b.htm”>

2.JavaScript 的定时器。

Select ISNULL(ErrorTimes,100) from T_users

如果ErrorTimes字段为null,就设为100

WebForm 1

WebForm分为两个文件aspx和aspx.cs,aspx是 面模版,是页面描述文件,就是html的内容,和aspx结合的更好,不用像一开始那样程序员自己去填充模版,空间都是定义在aspx中,内联的javascript,css都是现在aspx中的,服务端的C#代码定义在aspx.cs中,Aspx控制页面的长相,cs控制程序逻辑,种前aspx后cs的方式被称为CodeBehind。

相当于以前的html+ashx的模式。Aspx就是”模版引擎”

cs可以调用aspx中的控件,aspx中也可以访问cs中定义的字段、函数,还可以编写复杂的C#代码,for等所有C#代码都可以写在aspx中。(不推荐这样)

<%for (int i = 0; i < 10; i++){%>您好!<%} %>

可以在页面上写一些简单的代码---跟jsp一样。

<%=myName %>  “=”表示输出表达式。myName是后台cs代码中定义的属性。

<%=getName(); %>  getName()是一个方法。属性方法的成员级别必须是protected或者是public,不能是private的。

Aspx于cs之间的关系。

aspx、cs、dll之间的关系。

Response.Write(this.GetType()+"<br/>");//取得当前对象的类

Response.Write(this.GetType().Assembly.Location+"<br/>");//取得但前对象的assembly地址。

Response.Write(this.GetType().BaseType+"<br/>"); //取得当前对象的父类

Response.Write(this.GetType().BaseType.Assembly.Location + "<br/>"); //取得当前对象的父类的assembly地址

当前页面执行时的类是后台代码类的一个子类。前后台之间是继承关系。

Page类

Page类成员:

1.Request,Response,Server属性:对context.Request, context.Response, context.Sever的简化调用。

1.      AppRelativeVirtualPath 属性:获得页面相对于应用根路径的路径,比如:~/Default.aspx

2.      FindControl(crlId),根据控件的id找到控件。一般情况下直接在代码中写控件的id引用控件就可以了,但是对于一些场合:使用ListView等控件的模版、编写自定义控件等则需要使用FindControl来引用控件,FindControl返回值是Control  (TextBox)FindControl(“TextBox1”).Text=“aaa”;

3.      IsPostBack ,Session.

4.       ResolveClientUrl(url)将虚拟路径转换为客户端访问时的路径。比如ResolveClientUrl(“~/a/b.aspx”)结果是a/b/aspx,这通常在ListView等控件的模版中输出html使用。基本就是对VirtualPathutitlity.ToAbsolute的简化调用。

ASP.Net服务器端基本控件介绍。

Aspx.Net服务端控件是asp.net对HTML的封装,asp.net会将服务端控件渲染成html代码输出给浏览器。服务端控件是asp.net非常吸引初初学者、非常容易上手的东东,也是最被人诟病的东西。但是,物尽其用,服务端控件在内网系统、互联网系统的后台部分等访问频率不高的地方用的还很适合的。

(如果用的不好,会产生很多viewstate等不需要用到的代码,还有,asp.net服务端控件是通过post提交的,get方法也可以,但几乎没法用,很多场合,特别是在开发互联网程序,用post是很麻烦的。)

Asp.net应用是有限制的,比如开发一个企业的进销存系统(企业内部用的),不是一种互联网系统,互联网系统的后台,开发就很方便简单。做互联网前台,对服务器控件就要有所取舍,也不是完全不用。

Asp.net简单易用,不要因为它简单就不屑,我们应该调整好心态,怎样利用简单的东西早出复杂的系统,这才是我们需要做的。

asp.net控件,大部分都是从Control,WebControl类继承的,几乎都有的成员:1.ClientID。获得控件在客户端的ID。

document.getElementById('<%=TextBox1.ClientID %>').onmouseover = function () {this.style.background = 'red';}

在客户端通过javascript和jquery等操作控件时,必须要用('<%=TextBox1.ClientID %>').的方法取得控件id。好习惯(有时候客户端和服务端的ID会不同。)

2.Visible属性,控件是否可见,如果Visible=false是不会渲染到HTML中的,这和在HTML中给元素style.display=’none’效果是不一样的。

3. CssClass控件的css style属性

4.Attributes 用来设置获取控件的额外属性。和Dom中的setAttribute(),getAttribute()是一样的。

Button1.Attributes[“a1”]=”2.jpg”;

Button1.Attributes[“onmouseover”]=”alert(‘Hello man’)”;

基本控件:

1.      Label控件,用来显示文本,在客户端渲染成<span id=”Label1”>姓名</span> <span></span>跟div的区别,div占用一个区域,而span则放在哪就显示在那里。Label控件如果设置了 AssociatedControlId属性,它就会被渲染成相应控件的Label,点击Label,关联的控件就得到焦点。<label for=”TextBox1” id=”Label1”>姓名</Label>

2.      Literal控件不渲染任何元素。纯文本显示在客户端。设置了Mode属性为Encode后,文本还会自动的进行HTML编码。

3.      TextBox控件,文本框控件,TextMode属性取值SingleLine,MultiLine、Password,分别渲染成intput(type=text)、textarea、input(type=password)、当AutoPostBack属性为true的时候,用户焦点离开TextBox就会造成Post,实现原理就是讲Asp.net原理时的AutoPostBack. 用javascript提交表单,_doPostBack( );在ASP.Net中要提交表单的时候,最好直接调用_doPostBack(); TextChanged事件,文本发生变化的时候事件触发。

4.      RadioButton控件,渲染为input(type=radio),通过GroupName属性进行分组。

5. Button控件。OnClientClick属性,当用户点击按钮的时候,在浏览器端执行的代码,注意OnClientClick是字符串属性,写的代码是javaScript代码,运行在浏览器端。<asp:Button ID=”btnDel” ruant=”server” onclientclick=”return confirm(‘真的要删除吗?’)” Text=”删除”/>

6.LinkButton控件。在客户端渲染成一个超链接:这是一个特殊的超链接:      <a id="LinkButton1" href="javascript:__doPostBack( )">LinkButton</a>点击它就提交表单,相当于一个按钮。

7.ImageButton控件。客户端渲染成input(type=image)

<input type="image" name="ImageButton1" id="ImageButton1" src="../img/Abu.gif" />

8.Button,LinkButton,ImageButton等控件都有 CommandName,CommandArgument两个属性和Command事件,可以让多个按钮控件共享一个Command时间处理函数,通过读取事件对象e的CommandNam、CommandArgument两个属性读取被点击按钮设置的这两个参数来执行不同的操作。例如:编辑、删除多行数据。这种用法在ListView等控件中用的最多。

9.Panel控件,一般渲染成一个div。但如果设置了GroupingText属性后:会渲染成fieldset。

<fieldset><legend>Panel组件</legend></fieldset>

10.HyperLink 超链接:引用站内资源的时候比较方便,自动帮你转换路径,如果引用互联网地址如百度,则直接用<a>标签就ok了,减少服务器的负担。

11.FileUpload 文件上传:渲染成:input(type=file)

<input type="file" name="FileUpload1" id="FileUpload1" />

要预防WebShell漏洞:上传可执行的页面到服务器,然后在设法访问它,让他执行并破坏网站。

转载于:https://www.cnblogs.com/YangFengHui/archive/2011/04/16/2018591.html

ASP.NET中级学习2相关推荐

  1. asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.1 ...

  2. asp.net2.0学习历程 菜鸟到中级程序员的飞跃[z转]

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 学历历程 如果你是一个菜鸟或者自认为初学者那么本文非常适合你: 不能说这30本书就是最佳组合,但是可以说这个组合不差: 本人曾 ...

  3. asp.net2.0学习历程 菜鸟到中级程序员的飞跃 转载

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.16 学历历程 如 ...

  4. ASP.NET Atlas学习团队建议收集

    请在这里留下您对ASP.NET Atlas学习团队的宝贵意见和建议,让我们一起把它办得更好! 申请加入,请在http://dflying.cnblogs.com/archive/2006/05/09/ ...

  5. ASP.NET MVC学习之路由篇(2)

    ASP.NET MVC学习之路由篇(2) 原文:ASP.NET MVC学习之路由篇(2) 继ASP.NET MVC学习之路由篇(1)后继续学习. 7.解决与物理路径的冲突 当发送一个请求至ASP.NE ...

  6. ASP.NET MVC学习资料 新增几个开源项目

    ASP.NET MVC学习资料 新增几个开源项目 ASP.NET MVC MSDN API:  System.Web.Mvc Namespace (暂无中文版):  http://msdn.micro ...

  7. ASP.NET MVC学习之控制器篇

    一.前言 许久之后终于可以继续我的ASP.NET MVC连载了,之前我们全面的讲述了路由相关的知识,下面我们将开始控制器和动作的讲解. ASP.NET MVC学习之路由篇幅(1) ASP.NET MV ...

  8. ASP.NET Core学习资源汇总

    ASP.NET Core入门学习资源汇总篇幅比較長,分为七个部分. (一)认识.NET Core (二)Vistual Studio安装.调试 (三)Asp.Net Core入门指南与学习路线 (四) ...

  9. ASP.NET在线学习系统

    学无止境,所以人这一辈子是一个不断学习的过程,但是传统的学习方式都是在课题上进行学习,但是课题上学习的知识都是有限的,所以如何能够通过互联网进行在线学习是很多人梦寐以求的事情,但是随着互联网的发展这一 ...

最新文章

  1. Python中将pandas的dataframe拷贝到剪切板并保持格式实战:to_clipboard()函数、复制到Excel文件、复制到文本文件(默认是tsv格式)、复制到文本文件(设置逗号分隔符)
  2. ParLECH: Parallel Long-Read Error Correction with Hadoop
  3. 怎么用git将本地代码上传到远程服务器_TortoiseGit将本地git仓库上传到远程git服务器方法...
  4. android类中定义颜色,自定义实现简单的Android颜色选择器(附带源码)
  5. 散列(哈希 hash)
  6. python - os模块
  7. opencv进阶学习9:图像阈值大全,图像二值化,超大图像二值化
  8. PyCharm中配置与PyQT5相关的External tools
  9. struts -Tiles介绍
  10. 通过Dapr实现一个简单的基于.net的微服务电商系统(八)——一步一步教你如何撸Dapr之链路追踪
  11. minicom/picocom/cutecom/putty 安装与使用教程
  12. 红外倒车雷达原理图_硅光电倍增管 (SiPM) 直接飞行时间 (dToF) 激光雷达平台为工业测距应用提供现成的设计...
  13. java stream intermediateterminal方法
  14. 【干货】陆奇:新格局下的创业创新机会.pdf(附下载链接)
  15. postgresql 加载参数文件
  16. Arch + i3wm + i3lock-wrapper 毛玻璃锁屏
  17. android 基站 变化,(转)android定位之基站定位
  18. Python保留字简单释义
  19. socket写超时c语言,设置socket超时时间
  20. 1.《阿西莫夫:机器人短篇全集》

热门文章

  1. 高德经纬度距离计算php,计算两个经纬度之间的距离 单位(m)
  2. 机器学习笔记(九)聚类
  3. Leetcode 264. 丑数 II 解题思路及C++实现
  4. mysql实现汉字转拼音
  5. MySQL 数据库linux系统下修改配置文件设置mysql是否大小写敏感实例演示
  6. ueditor百度编辑器常见报错的解决方法
  7. 基于状态机的LCD多级菜单设计
  8. CTFshow 文件包含 web117
  9. 利用非递归方法实现二叉树的先序遍历
  10. 【Kaggle-MNIST之路】两层的神经网络Pytorch(四行代码的模型)