乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ASP.NET Page那點(diǎn)事(1)

       昵稱10504424 2012-09-11

      Page,我想每個(gè)ASP.NET開發(fā)人員對(duì)它應(yīng)該都是比較熟悉的。

      這次的博客我就打算專門談?wù)勊?。不過呢,我不打算說 在Page中使用控件的一些話題,也不會(huì)說Page的生命周期的相關(guān)話題,因?yàn)槲艺J(rèn)為這些話題被人談?wù)摰拇螖?shù)實(shí)在是太多了,尤其是市面上的ASP.NET的書籍,都會(huì)比較喜歡這些話題。

      我不喜歡重復(fù),因此今天我只想談些人家不談的那點(diǎn)事,但我認(rèn)為它們?nèi)匀缓苤匾?/p>

      一些重要的Page指令

      雖然Page公開了很多屬性,讓我們可以在運(yùn)行時(shí)調(diào)整它的狀態(tài)與行為,但是,還有些重要的參數(shù)卻是以“指令”方式提供的,需要在設(shè)計(jì)時(shí)就指定。

      下面是我整理的一些我認(rèn)為 比較重要并且經(jīng)常需要使用的指令:

       

      web.config的全局設(shè)置

      前面我介紹了一些常用的Page指令,考慮到方便性,ASP.NET還允許我們?cè)趙eb.config中為一些常用的指令配置默認(rèn)值。下面我就一些常用的場(chǎng)景來說明這些全局配置的方便性。

      1. 通常,我在創(chuàng)建一個(gè)網(wǎng)站項(xiàng)目時(shí),肯定會(huì)決定不使用ViewState和Session的。那么如果為每個(gè)頁面設(shè)置EnableViewState,EnableSessionState指令屬性,那就顯得太麻煩了,而且還容易遺漏。此時(shí),我們可以直接在web.config中為這些參數(shù)指定一個(gè)全局的默認(rèn)值:

      1. <pages enableViewState="false" enableSessionState="false"></pages> 
      2.  

      補(bǔ)充說明一下:全局禁用Session的徹底方法是把Session對(duì)應(yīng)的HttpModule從httpModules列表中移除。

      web.config允許我們?cè)O(shè)置Page默認(rèn)參數(shù)的具體配置節(jié)如下:

      1. <pages       
      2.    buffer="[True|False]" 
      3.    enableEventValidation="[True|False]" 
      4.    enableSessionState="[True|False|ReadOnly]" 
      5.    enableViewState="[True|False]" 
      6.    enableViewStateMac="[True|False]" 
      7.    smartNavigation="[True|False]" 
      8.    autoEventWireup="[True|False]" 
      9.    pageBaseType="typename, assembly" 
      10.    userControlBaseType="typename" 
      11.    validateRequest="[True|False]" 
      12.    masterPageFile="file path"   
      13.    theme="string" 
      14.    styleSheetTheme="string" 
      15.    maxPageStateFieldLength="number"   
      16.    compilationMode="[Always|Auto|Never]"   
      17.    pageParserFilterType="string"   
      18.    viewStateEncryptionMode="[Always|Auto|Never]"   
      19.    maintainScrollPositionOnPostBack="[True|False]"   
      20.    asyncTimeout="number" 
      21. > 
      22.    <controls>...</controls> 
      23.    <namespaces>...</namespaces> 
      24.    <tagMapping>...</tagMapping> 
      25. </pages> 

      2. 為了代碼重用,設(shè)計(jì)用戶控件也是很常用的方法。

      我們可以使用 @ Register指令 在頁面注冊(cè)需要使用的UserControl或者WebControl。然而,有些控件比較通用,許多頁面都會(huì)使用它,那么就不要再使用 @ Register指令了,可以在web.config中統(tǒng)一注冊(cè)。例如:

      1. <pages> 
      2.     <controls> 
      3.         <add tagPrefix="fish" tagName="MainMenu" src="~/Controls/MainMenu.ascx" /> 
      4.         <add tagPrefix="fish" tagName="PageHeader" src="~/Controls/PageHeader.ascx" /> 
      5.     </controls> 
      6. </pages> 

      有了這個(gè)定義后,我就可以在任何頁面中直接使用:

      1. <fish:PageHeader runat="server" ID="PageHeader1" /> 

      3. 對(duì)于喜歡使用頁面內(nèi)聯(lián)代碼的人來說,可能經(jīng)常需要使用自己定義的類型。如果這些類型定義在某個(gè)命名空間中,那么就需要在內(nèi)聯(lián)代碼中采用完整命名空間的寫法。雖然這樣做沒有什么問題,但就是麻煩,于是,我們可以在頁面中使用 @ Import指令 來導(dǎo)入我們需要使用的命名空間,但是這個(gè)指令每次只能導(dǎo)入一個(gè)命名空間,而且每個(gè)頁面還得重復(fù)導(dǎo)入,顯然不夠方便。

      為了方便使用一些常用的命名空間,我們可以在web.config中統(tǒng)一指定,例如:

      1. <pages> 
      2.     <namespaces> 
      3.         <add namespace="MyMVC" /> 
      4.         <add namespace="WebSiteCommonLib" /> 
      5.         <add namespace="WebSiteModel" /> 
      6.     </namespaces> 
      7. </pages> 

      這樣設(shè)置后,所有頁面就可以直接使用這些命名空間下的類型了。

      不知道有些人想過:為什么在頁面中使用某些微軟提供的類型就不需要導(dǎo)入命名空間?

      答案是:其實(shí)ASP.NET已經(jīng)將一些微軟認(rèn)為常用的命名空間在web.config中配置好了:

      1. <pages> 
      2.     <namespaces> 
      3.         <add namespace="System"/> 
      4.         <add namespace="System.Collections"/> 
      5.         <add namespace="System.Collections.Specialized"/> 
      6.         <add namespace="System.Configuration"/> 
      7.         <add namespace="System.Text"/> 
      8.         <add namespace="System.Text.RegularExpressions"/> 
      9.         <add namespace="System.Web"/> 
      10.         <add namespace="System.Web.Caching"/> 
      11.         <add namespace="System.Web.SessionState"/> 
      12.         <add namespace="System.Web.Security"/> 
      13.         <add namespace="System.Web.Profile"/> 
      14.         <add namespace="System.Web.UI"/> 
      15.         <add namespace="System.Web.UI.WebControls"/> 
      16.         <add namespace="System.Web.UI.WebControls.WebParts"/> 
      17.         <add namespace="System.Web.UI.HtmlControls"/> 
      18.     </namespaces> 
      19. </pages> 

      4. 現(xiàn)在,有越來越多的人為了方便而使用擴(kuò)展方法。使用擴(kuò)展方法的好處是:可以讓我們不去關(guān)心這些擴(kuò)展方法定義在那個(gè)類中,只要在支持?jǐn)U展方法的對(duì)象上調(diào)用就可以了,就像下面的代碼這樣:

      1. 當(dāng)前用戶已登錄,登錄名:<%= Context.User.Identity.Name.HtmlEncode() %> 

      然而,在頁面中使用擴(kuò)展方法時(shí),也必須先導(dǎo)入擴(kuò)展方法的定義類的命名空間。

      因此,為了方便,我們可以在web.config中為我們定義的擴(kuò)展方法導(dǎo)入相應(yīng)的命名空間:

      1. <pages> 
      2.     <namespaces> 
      3.         <add namespace="FishDemoCodeLib" /> 
      4.     </namespaces> 
      5. </pages> 

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多