这个问题之所以存在,是因为它确实存在 具有历史意义,但事实并非如此 被认为是一个很好的主题问题 因为是本网站,所以请不要使用 作为证据,你可以问类似的问题 这里的问题。 更多信息:https://stackoverflow.com/faq
总有一些功能在边缘场景中很有用,但正是因为这个原因,大多数人都不知道它们。我要求的是课本上通常没有教过的特性。
你知道的是什么?
这个问题之所以存在,是因为它确实存在 具有历史意义,但事实并非如此 被认为是一个很好的主题问题 因为是本网站,所以请不要使用 作为证据,你可以问类似的问题 这里的问题。 更多信息:https://stackoverflow.com/faq
总有一些功能在边缘场景中很有用,但正是因为这个原因,大多数人都不知道它们。我要求的是课本上通常没有教过的特性。
你知道的是什么?
当前回答
有两件事在我脑海中浮现:
1)你可以在代码中打开和关闭Trace:
#ifdef DEBUG
if (Context.Request.QueryString["DoTrace"] == "true")
{
Trace.IsEnabled = true;
Trace.Write("Application:TraceStarted");
}
#endif
2)您可以使用一个共享的“代码隐藏”文件构建多个.aspx页面。
构建一个类.cs文件:
public class Class1:System.Web.UI.Page
{
public TextBox tbLogin;
protected void Page_Load(object sender, EventArgs e)
{
if (tbLogin!=null)
tbLogin.Text = "Hello World";
}
}
然后你可以有任意数量的。aspx页面(在你删除VS生成的。designer.cs和。cs代码之后):
<%@ Page Language="C#" AutoEventWireup="true" Inherits="Namespace.Class1" %>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="tbLogin" runat="server"></asp: TextBox >
</div>
</form>
你可以在ASPX中拥有没有在Class1中出现的控件,反之亦然,但是你需要记住检查你的控件是否为空。
其他回答
默认情况下,任何web表单页面都继承自System.Web.UI.Page类。如果您希望您的页面继承自自定义基类,继承自System.Web.UI.Page怎么办?
有一种方法可以约束任何页面从您自己的基类继承。只需在web.config中添加一行:
<system.web>
<pages pageBaseType="MyBasePageClass" />
</system.web>
注意:只有当你的类是一个独立的类时,这才有效。我的意思是一个没有隐藏代码的类,它看起来像<%@ Page Language=" c# " AutoEventWireup="true" %>
这似乎是一个巨大而模糊的问题…… 但我将在这里介绍Reflection,因为它允许我做一些非常强大的事情,如可插拔的DALs等。
如果你有ASP。NET生成一个RSS提要,它有时会在页面顶部放置额外的一行。这不会用普通RSS验证器进行验证。您可以通过在页面底部放置页面指令<@Page>来解决这个问题。
Page指令中的MaintainScrollPositionOnPostback属性。它用于在回发时保持aspx页面的滚动位置。
HttpModules。建筑非常优雅。也许不是一个隐藏的功能,但仍然很酷。