如何只对用户控件头加载一次?

时间:2011-06-01 20:51:10

标签: asp.net performance header webusercontrol

我正在asp.net网站上实现用户控件。用户控件将用作所有页面中的标题。如何加载用户控件内容取决于用户(登录,注销,用户名)。

如何只加载一次用户控件?例如,当用户以quora登录时。要了解我的意思,登录quora,你会注意到:每次,我打开一个问题的页面,quora标题都不会重新加载。只有主要内容发生变化。

如何实现?

2 个答案:

答案 0 :(得分:0)

我没有使用quora注册,但公共页面仍然具有一致的标题,但每次发出请求时都会下载标题。我认为简单性很难说整个屏幕正在被重新绘制。

您可以使用ajax发出请求,只有重绘页面的一部分(如果这是您想要的)。或者,你可以去旧学校并使用框架(请不要)。

答案 1 :(得分:0)

我建议您将标题放在母版页上,并有几个内容页面。您仍然可以将其放入用户控件中。

如果您想保持用户控制并重新加载内容,则会有点复杂。您必须使用JavaScript来实现此目标。在ASP.NET中,您可以使用UpdatePanel。

<asp:UpdatePanel ID=”UpdatePanel1” runat=”server”>
  <ContentTemplate>
    <!-- this content can be refreshed on post backs -->
  </ContentTemplate>
</asp:UpdatePanel>

要为登录用户设置单独的面板,您可以使用登录视图:

<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
   <AnonymousTemplate>
   </AnonymousTemplate>
   <LoggedInTemplate>
         Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
          [ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/"/> ]
   </LoggedInTemplate>
</asp:LoginView>