【问题标题】:Have duplicate content on a single aspx page?在单个 aspx 页面上有重复的内容?
【发布时间】:2019-11-20 21:15:26
【问题描述】:

背景:我正在尝试为我公司的企业网站实施新布局,并且我已经设置了母版页,以便根据设置的功能标志在新旧布局之间进行交换。现在我想重新设置每个页面的样式,并能够使用相同的功能标志在新旧内容之间进行交换。问题是我不能复制 Id,所以现在我不想触摸的后端代码需要被触摸,以便所有重复的控件在后端正常工作。

旧页面的样式设置方式并不像换出 CSS 文件那么容易,所有样式都嵌入在 asp 控件本身中,所以这导致我找到下面的解决方案,但它抱怨重复的控件 ID。

我的问题是,有没有一种简单的方法可以在这里做我想做的事情?或者有什么方法可以让我在同一个页面上有两个具有相同 ID 的控件?

我的主要开发领域是 ASP.NET MVC,我尽量远离 web 表单,但是我们拥有的 aspx 页面数量之多,将每个页面转换为新的 MVC 视图是一个缓慢的过程.所以我现在只想重新设置 aspx 页面的样式。

<asp:Content ContentPlaceHolderID="HeadContent" runat="server"></asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
    <asp:Button runat="server" ID="button1"/>
    Feature flag is off
</asp:Content>
<asp:Content ContentPlaceHolderID="NewMainContent" runat="server">
    <asp:Button runat="server" ID="button1"/>
    Feature flag is on
</asp:Content>

【问题讨论】:

    标签: c# asp.net webforms frontend


    【解决方案1】:

    你可以使用 if 语句只渲染所需的部分吗

    <% if(!Featureflag) { %>
       <asp:Content ContentPlaceHolderID="MainContent" runat="server">
        <asp:Button runat="server" ID="button1"/>
         Feature flag is off
    </asp:Content>
    <% } else { %>
    <asp:Content ContentPlaceHolderID="NewMainContent" runat="server">
        <asp:Button runat="server" ID="button1"/>
        Feature flag is on
    </asp:Content>
    <% } %>
    

    【讨论】:

    • 是的,这可行,但它仍然抱怨 button1 是重复的 id。这是我的主要问题,我开始认为我在这个问题上将网络表单推得太远了。
    • 我相信您可以在运行时更改服务器控件的 ID。 stackoverflow.com/questions/5142204/… 试试看?!?
    • 我也可以将其中一个按钮的 ID 更改为“button2”,但现在需要编辑后端以同时使用 button1 和 button2。我试图避免。
    • 这可能行得通,我仍然需要编辑后端代码,但只是最低限度。让我玩一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多