一、HttpContext概述

1)、如何获取对象:

在WebForm或类库(包括MVC)项目中,通过Current静态属性,就能够获得HttpContext的对象: HttpContext context = HttpContext.Current;

如果是在Asp.net MVC的Controller中,通过this.HttpContext;就能获取到HttpContextBase对象:HttpContextBase context = this.HttpContext;

如果是在MVC视图中可以这样得到:@Html.ViewContext.HttpContext

2)、貌似HttpContext中有很多对象属性在Page中也有,例如Request,Response,Cache,Session等等,那它们是什么关系呢?

是同一个对象。

//获取上一次异常

HttpContext.Current.Server.GetLastError();

//清空异常

HttpContext.Current.Server.ClearError();

HttpContext.Current在异步线程中是获取不到的,为null

获取当前网站、应用程序根目录:AppDomain.CurrentDomain.BaseDirectory

二、Asp.Net Web Form 页面

1) 页面中多个表单元素名称相同时,传入的值为 逗号分隔:如 有两个<input type="text" name="age" /> 元素  一个值是10 一个值是20,传入的时,age:10,20

2)   按钮事件 当前页面的请求地址不会改变 , 如,请求地址为: http://localhost:55519/Test.aspx?no=qq  在这个页面点击服务器按钮时 请求地址不会改变 ,即查询字符串?no=qq 信息不会丢失。

原理:表单控件的默认action 为当前请求地址。

<form method="post" action="Test.aspx?no=qq" id="form1">  <input type="submit" name="btnTest" value="ces" id="btnTest"><form>

3)服务器控件有视图状态 在提交表单后 值仍存在 不用重新输入  ,  html 客户端控件则提交后数据清空

web.config 中设置单个文件上传大小:maxRequestLength 默认值 4096 KB (4 MB)

<httpRuntime maxRequestLength="4096" appRequestQueueLimit="60" executionTimeout="60"/>

三、部署服务器

1、应用程序池--》高级设置--》启动32位应用程序 true--》托管管道模式选择Classic  FrameWork选择4.0版 32位 经典模式(Class)

2、网站:功能视图:处理程序映射:Copy 4.0版32位(HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit的可执行文件) 右击添加 通配符脚本映射:名称随便起 可执行文件用上一步
3、如果有上传文件功能 添加IIS Pool权限:

四、自定义错误页面:

方法一:web.config

configuration>
<system.web>
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly|On|Off">
<error statusCode="500"
redirect="InternalError.htm"/>
<error statusCode="404"
redirect="404.htm"/> </customErrors>
</system.web> 
</configuration>

方法二:自定义Page类

自定义MyPage类继承与System.Web.UI.Page类,重写该类的OnError事件
protected override void OnError(EventArgs e)
{
      Response.Redirect("app1.aspx");
}

四、

//获取最后的异常。

//获取前一个异常
Exception ex = HttpContext.Current.Server.GetLastError();

//清除前一个异常。
HttpContext.Current.Server.ClearError();

五、

在含有验证控件的页面 想让某个服务器按钮 免验证提交事件  可设置其 属性 CausesValidation="False"

六、

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>if(confirm('保存成功!是否继续添加?')){location.href='ProductonAdd.aspx'}else{location.href='ProductonList.aspx'}</script>");

//后台弹出确定框

ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('请正确输入!');</script>");

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alert('数据添加成功!');{location.href='ProductonList.aspx'}</script>");

Page.ClientScript.RegisterStartupScript(typeof(string), "", "<script>window.location.href='AdminMain.aspx';</script>");

//后台弹出文本框
ScriptManager.RegisterStartupScript(Page, typeof(string), "popUp", "window.open('rptView.aspx','打印预览','toolbar=no,location=no,scrollbars=yes,top=200px,left=200px,width=904px,height=650px')", true);


清除DNS缓存 

遇到网络异常,可能是DNS缓存的问题,清理一下即可。

①开始→运行→输入:CMD 按回车键,打开命令提示符窗口。

②再输入: ipconfig /flushdns 回车执行命令,重建本地DNS缓存。

含有表单验证控件的页面在验证未通过时按钮事件是不无法提交的

 

ASP.NET基础系列的更多相关文章

  1. 你所不知道的ASP.NET Core MVC/WebApi基础系列(一)

    前言 最近发表的EF Core貌似有点多,可别误以为我只专攻EF Core哦,私下有时间也是一直在看ASP.NET Core的内容,所以后续会穿插讲EF Core和ASP.NET Core,别认为你会 ...

  2. 你所不知道的ASP.NET Core MVC/WebApi基础系列 (一)

    转自博客:https://www.cnblogs.com/CreateMyself/p/9235968.html 前言 最近发表的EF Core貌似有点多,可别误以为我只专攻EF Core哦,私下有时 ...

  3. 【ASP.NET Identity系列教程(一)】ASP.NET Identity入门

    注:本文是[ASP.NET Identity系列教程]的第一篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  4. 【ASP.NET Identity系列教程(二)】运用ASP.NET Identity

    注:本文是[ASP.NET Identity系列教程]的第二篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  5. 【ASP.NET Identity系列教程(三)】Identity高级技术

    注:本文是[ASP.NET Identity系列教程]的第三篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  6. ASP.NET 5系列教程 (六): 在 MVC6 中创建 Web API

    ASP.NET 5.0 的主要目标之一是统一MVC 和 Web API 框架应用. 接下来几篇文章中您会了解以下内容: ASP.NET MVC 6 中创建简单的web API. 如何从空的项目模板中启 ...

  7. 【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照

    近期在开发小组在研究:BS项目中是利用'MVC框架'还是继续沿用'三层'的问题. 由于曾经的.NET项目大多数都是利用三层开发的,所以大多数人都可以对三层进行熟练地运用.而项目的開始我们也曾听说过MV ...

  8. Easyui + asp.net MVC 系列教程 完成登录

    Easyui + asp.net MVC 系列教程 第09-17 节 完成登录 高清录制 前面八节 在这里 Easyui + asp.net mvc + sqlite 开发教程(录屏)适合入门 在接下 ...

  9. ASP.NET MVC3 系列教程 - 目录

    ASP.NET MVC3 系列教程 - 目录   I:ASP.NET MVC3 新增的功能 ASP.NET MVC3 系列教程 - Razor视图引擎基础语法ASP.NET MVC3 系列教程 - V ...

随机推荐

  1. DELPHI下API简述(1800个API)

    DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...

  2. HASH暴力破解工具-Hashcat

    乌云网看到一篇文章讲述hashcat的使用简介(戳这里),对使用字典破解MD5内容 简单在kali上尝试了一下. (1)首先查看了下hashcat的帮助文档,简单截取了其中的部分常用说明. hashc ...

  3. Android性能优化典范 - 第2季

    Google发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的缩放,缓 ...

  4. 分布式java应用

    大型应用,通常会拆分为多个子系统来实现.       对Java来说,这些子系统可能部署在同一台机器的多个不同的JVM中,也可能部署在不同的机器上,但这些子系统又不是完全独立的,要相互通信来共同实现业 ...

  5. ASP.NE的缓存技术提高Web站点的性能

    一:我们为什么要使用缓存? 先来理解一下asp.net缓存技术的基本原理:把访问频繁的数据以及需要花大量的时间来加载的数据缓存在内存中,那么用户在下次请求同样的数据时,直接将内存中的数据返回给用户,从 ...

  6. JAVA分布式事务原理及应用

    JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据.JDBC驱动程序的JTA支持极大地增强了数据访问能力. 本文的目的是要 ...

  7. ↗☻【编写可维护的JavaScript #BOOK#】第8章 避免“空比较”

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  8. Java中调用参数是数组的存储过程

    Java中调用参数是数组的存储过程 1. 存储过程以及类型定义如下: --The array in oracle CREATE OR REPLACE TYPE idArray AS TABLE OF ...

  9. IOS 多线程 NSOperation GCD

    1.NSInvocationOperation NSInvocationOperation * op; NSOperationQueue * que = [[NSOperationQueuealloc ...

  10. POJ 2955 Brackets 区间合并

    输出一个串里面能匹配的括号数 状态转移方程: if(s[i]=='('&&s[j]==')'||s[i]=='['&&s[j]==']')             dp ...