1)、如何獲取對象:html
在WebForm或類庫(包括MVC)項目中,經過Current靜態屬性,就可以得到HttpContext的對象: HttpContext context = HttpContext.Current;web
若是是在Asp.net MVC的Controller中,經過this.HttpContext;就能獲取到HttpContextBase對象:HttpContextBase context = this.HttpContext;緩存
若是是在MVC視圖中能夠這樣獲得:@Html.ViewContext.HttpContext服務器
2)、貌似HttpContext中有不少對象屬性在Page中也有,例如Request,Response,Cache,Session等等,那它們是什麼關係呢?網絡
是同一個對象。app
//獲取上一次異常異步
HttpContext.Current.Server.GetLastError();ide
//清空異常post
HttpContext.Current.Server.ClearError();網站
HttpContext.Current在異步線程中是獲取不到的,爲null
獲取當前網站、應用程序根目錄:AppDomain.CurrentDomain.BaseDirectory
2、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"/>
3、部署服務器
一、應用程序池--》高級設置--》啓動32位應用程序 true--》託管管道模式選擇Classic FrameWork選擇4.0版 32位 經典模式(Class)
二、網站:功能視圖:處理程序映射:Copy 4.0版32位(HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit的可執行文件) 右擊添加 通配符腳本映射:名稱隨便起 可執行文件用上一步
三、若是有上傳文件功能 添加IIS Pool權限:
4、自定義錯誤頁面:
方法一: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類
4、
//獲取最後的異常。
//獲取前一個異常
Exception ex = HttpContext.Current.Server.GetLastError();
//清除前一個異常。
HttpContext.Current.Server.ClearError();
5、
在含有驗證控件的頁面 想讓某個服務器按鈕 免驗證提交事件 可設置其 屬性 CausesValidation="False"
6、
//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緩存。
含有表單驗證控件的頁面在驗證未經過時按鈕事件是不沒法提交的