这个问题之所以存在,是因为它确实存在 具有历史意义,但事实并非如此 被认为是一个很好的主题问题 因为是本网站,所以请不要使用 作为证据,你可以问类似的问题 这里的问题。 更多信息:https://stackoverflow.com/faq


总有一些功能在边缘场景中很有用,但正是因为这个原因,大多数人都不知道它们。我要求的是课本上通常没有教过的特性。

你知道的是什么?


当前回答

EnsureChildControls方法:它检查子控件是否被初始化。如果子控件未初始化,则调用CreateChildControls方法。

其他回答

CompilationMode="Never"是一个在某些ASP中至关重要的特性。网网站。

如果你有ASP。在asp.net应用程序中,ASPX页面经常通过CMS或其他发布系统生成和更新,使用CompilationMode="Never"是很重要的。

如果没有此设置,ASPX文件更改将触发重新编译,这将快速使您的appdomain重新启动。这可以清除会话状态和httpruntime缓存,更不用说重新编译引起的延迟。

(为了防止重新编译,你可以增加numRecompilesBeforeAppRestart设置,但这不是理想的,因为它会消耗更多的内存。)

这个特性需要注意的一点是,ASPX页面不能包含任何代码块。为了解决这个问题,可以在自定义控件和/或基类中放置代码。

在ASPX页面不经常更改的情况下,这个特性基本无关紧要。

默认情况下,任何web表单页面都继承自System.Web.UI.Page类。如果您希望您的页面继承自自定义基类,继承自System.Web.UI.Page怎么办?

有一种方法可以约束任何页面从您自己的基类继承。只需在web.config中添加一行:

<system.web>
    <pages pageBaseType="MyBasePageClass" />
</system.web>

注意:只有当你的类是一个独立的类时,这才有效。我的意思是一个没有隐藏代码的类,它看起来像<%@ Page Language=" c# " AutoEventWireup="true" %>

System.Web.VirtualPathUtility

我使用的一件事是在多个版本的VB, VBScript和VB中工作。NET将记录集值转换为字符串,以消除对NULL或空白的多次测试。例如修剪(rsData(“字段名”)。值& " ") 在整数值的情况下,这将是:CLng("0" & Trim(rsData("FieldName")。值& " "))

使用configSource拆分配置文件。

你可以在web中使用configSource属性。将配置元素推送到其他.config文件,例如: 而不是:

    <appSettings>
        <add key="webServiceURL" value="https://some/ws.url" />
        <!-- some more keys -->
    </appSettings>

...您可以将整个appSettings部分存储在另一个配置文件中。这是新的网络。配置:

    <appSettings configSource="myAppSettings.config" />

myAppSettings。配置文件:

    <appSettings>        
        <add key="webServiceURL" value="https://some/ws.url" />
        <!-- some more keys -->
    </appSettings>

这对于您向客户部署应用程序并且不希望他们干扰web的场景非常有用。配置文件本身,只是希望他们能够改变只是几个设置。

裁判:http://weblogs.asp.net/fmarguerie/archive/2007/04/26/using-configsource-to-split-configuration-files.aspx