web.config的全局设置

本文介绍了如何在ASP.NET中通过web.config文件进行全局配置,包括禁用ViewState和Session、注册常用用户控件及导入命名空间等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面我介绍了一些常用的Page指令,考虑到方便性,ASP.NET还允许我们在web.config中为一些常用的指令配置默认值。下面我就一些常用的场景来说明这些全局配置的方便性。

1. 通常,我在创建一个网站项目时,肯定会决定不使用ViewState和Session的。那么如果为每个页面设置EnableViewState,EnableSessionState指令属性,那就显得太麻烦了,而且还容易遗漏。此时,我们可以直接在web.config中为这些参数指定一个全局的默认值:

<pages enableViewState="false" enableSessionState="false"></pages>

补充说明一下:全局禁用Session的彻底方法是把Session对应的HttpModule从httpModules列表中移除。

web.config允许我们设置Page默认参数的具体配置节如下:

  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" 

    >

    <controls>...</controls>

    <namespaces>...</namespaces>

    <tagmapping>...</tagmapping>

    </pages>

    2. 为了代码重用,设计用户控件也是很常用的方法。

    我们可以使用 @ Register指令 在页面注册需要使用的UserControl或者WebControl。然而,有些控件比较通用,许多页面都会使用它,那么就不要再使用 @ Register指令了,可以在web.config中统一注册。例如:

    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> 

     

     

    有了这个定义后,我就可以在任何页面中直接使用:

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

    3. 对于喜欢使用页面内联代码的人来说,可能经常需要使用自己定义的类型。如果这些类型定义在某个命名空间中,那么就需要在内联代码中采用完整命名空间的写法。虽然这样做没有什么问题,但就是麻烦,于是,我们可以在页面中使用 @ Import指令 来导入我们需要使用的命名空间,但是这个指令每次只能导入一个命名空间,而且每个页面还得重复导入,显然不够方便。

    为了方便使用一些常用的命名空间,我们可以在web.config中统一指定,例如:

    <page>

    <namespaces>

    <add namespace="MyMVC"/>

    <add namespace="WebSiteCommonLib"/>

    </namespaces>

    </page>

    这样设置后,所有页面就可以直接使用这些命名空间下的类型了。

     

     

     

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值