我正在asp.net网站上实现用户控件。用户控件将用作所有页面中的标题。如何加载用户控件内容取决于用户(登录,注销,用户名)。
如何只加载一次用户控件?例如,当用户以quora登录时。要了解我的意思,登录quora,你会注意到:每次,我打开一个问题的页面,quora标题都不会重新加载。只有主要内容发生变化。
如何实现?
答案 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>