ASP.NET基礎系列

1、HttpContext概述

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類

自定義MyPage類繼承與System.Web.UI.Page類,重寫該類的OnError事件
protected override void OnError(EventArgs e)
{
      Response.Redirect("app1.aspx");
}

 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緩存。

 

含有表單驗證控件的頁面在驗證未經過時按鈕事件是不沒法提交的

相關文章
相關標籤/搜索