C# UpdatePanel中的ContentPlaceHolder
我有一个非常简单的支持ajax的asp.net网站和母版页。我在母版页中有一个菜单,其他页面显示在MainContent占位符中。我有以下代码。但当我点击菜单项时,我可以看到有时页面回发C# UpdatePanel中的ContentPlaceHolder,c#,asp.net,ajax,updatepanel,master-pages,C#,Asp.net,Ajax,Updatepanel,Master Pages,我有一个非常简单的支持ajax的asp.net网站和母版页。我在母版页中有一个菜单,其他页面显示在MainContent占位符中。我有以下代码。但当我点击菜单项时,我可以看到有时页面回发 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> <ContentTemplate> <asp:ContentPlaceHolder ID="MainContent"
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</ContentTemplate>
如何防止回发和部分加载页面?我已经搜索了stackoverflow,但所有的解决方案都与我所看到的相同。有什么我需要做的吗
谢谢
编辑:
包含菜单项的完整页面如下所示:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div class="page">
<div class="header">
<div class="title">
<h1>
App</h1>
</div>
<div class="loginDisplay">
</div>
<div class="clear hideSkiplink">
<asp:Menu ID="NavigationMenu" runat="server" EnableViewState="false" IncludeStyleBlock="false"
Orientation="Horizontal" Font-Size="Large" Height="48px" Width="100%" BorderStyle="Dashed">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home Page" />
<asp:MenuItem NavigateUrl="~/DefinePropertyType.aspx" Text="Define PropertyType" />
<asp:MenuItem NavigateUrl="~/CreateProperty.aspx" Text="Create Property" />
<asp:MenuItem NavigateUrl="~/RiskManagemet.aspx" Text="Risk Managemet" />
<asp:MenuItem NavigateUrl="~/InsurancePolicy.aspx" Text="InsurancePolicy" />
<asp:MenuItem NavigateUrl="~/Damage.aspx" Text="Damage" />
</Items>
<StaticMenuItemStyle ItemSpacing="20px" />
</asp:Menu>
</div>
</div>
<div class="main">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="clear">
</div>
</div>
<div class="footer">
应用程序
您需要将菜单控件定义为更新面板的异步回发触发器。试试这个
<asp:updatepanel ID="Updatepanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="NavigationMenu"
EventName="MenuItemClick" />
</Triggers>
<ContentTemplate>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</ContentTemplate>
</asp:updatepanel>
您需要将菜单控件定义为更新面板的异步回发触发器。试试这个
<asp:updatepanel ID="Updatepanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="NavigationMenu"
EventName="MenuItemClick" />
</Triggers>
<ContentTemplate>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</ContentTemplate>
</asp:updatepanel>
请张贴您的菜单项code将UpdatePanel放在aspx页面的内容控件中。@Lloyd我尝试过这种方法,但不幸的是结果没有改变,但是谢谢。请张贴您的菜单项代码将UpdatePanel放在您的内容控件中的aspx页面上。@Lloyd我尝试了这种方法,但不幸的是没有改变结果,但是谢谢。谢谢。现在可以了。但是我想不出什么。当我使用firefox浏览页面时,它总是异步回发,但在chrome中,有时会回发所有页面。你们知道为什么会这样吗?@Ozgur Tmp:看看这篇文章,看看是否和你们的问题有关。谢谢。现在可以了。但是我想不出什么。当我使用firefox浏览页面时,它总是异步回发,但在chrome中,有时会回发所有页面。你们知道为什么会这样吗?@Ozgur Tmp:看看这篇文章,看看是否和你们的问题有关。