【问题标题】:Removing </p> tag after ValidationSummary control在 ValidationSummary 控件之后删除 </p> 标记
【发布时间】:2011-03-22 07:57:51
【问题描述】:

我在 ASP.NET 中使用 Visual Studio 2010,后面带有 C# 代码。

我在源代码视图中有一个带有代码的 ASP.NET 页面:

<p>
    <asp:ValidationSummary ID="ValidationSummary1" runat="server" />
</p>

如果我在设计视图中切换并返回到 VS 中的源视图,它会意外地自动删除最后一个 &lt;/p&gt;

您的 Visual Studio 中是否有同样的问题? 任何想法如何解决它?

谢谢。

附:这是我的完整代码:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <h1>
        Create Groups Types</h1>
    <p>
        <asp:DetailsView ID="uxCreateGroupsTypesDisplayer" runat="server" AutoGenerateRows="False"
            DataKeyNames="GroupTypeId" DataSourceID="uxEntityDataSourceCreateGroupsTypes"
            DefaultMode="Insert" 
            oniteminserted="uxCreateGroupsTypesDisplayer_ItemInserted" 
            oniteminserting="uxCreateGroupsTypesDisplayer_ItemInserting">
            <Fields>
                <asp:TemplateField HeaderText="TypeGroup" SortExpression="TypeGroup">
                    <InsertItemTemplate>
                        <asp:TextBox ID="uxTypeGroupInput" runat="server" Text='<%# Bind("TypeGroup") %>'></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="TypeGroup field is required."
                            ControlToValidate="uxTypeGroupInput" Text="*">
                        </asp:RequiredFieldValidator>
                        <asp:RegularExpressionValidator ID="uxRegularExpressionTypeGroup" runat="server"
                            ControlToValidate="uxTypeGroupInput" ErrorMessage="TypeGroup is too long or short. Change the field accordingly."
                            ValidationExpression="^.{4,40}$">*</asp:RegularExpressionValidator>
                    </InsertItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Summary" SortExpression="Summary">
                    <InsertItemTemplate>
                        <asp:TextBox ID="uxSummaryInput" runat="server" Text='<%# Bind("Summary") %>'></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidatorSummary" runat="server" ErrorMessage="Summary field is required."
                            ControlToValidate="uxSummaryInput" Text="*">
                        </asp:RequiredFieldValidator>
                        <asp:RegularExpressionValidator ID="uxRegularExpressionSummary" runat="server" ControlToValidate="uxSummaryInput"
                            ErrorMessage="Summary is too long or short. Change the field accordingly." ValidationExpression="^.{4,256}$">*</asp:RegularExpressionValidator>
                    </InsertItemTemplate>
                </asp:TemplateField>
                <asp:CommandField ShowInsertButton="True" />
            </Fields>
        </asp:DetailsView>
    </p>
    <p>
        <asp:ValidationSummary ID="ValidationSummary1" runat="server" /></p> <!-- The problem is here - This tag disappear if you switch from source view to design view and back to source view -->
        <asp:EntityDataSource ID="uxEntityDataSourceCreateGroupsTypes" runat="server" 
            EnableFlattening="False"
            EnableInsert="True" EntitySetName="CmsGroupsTypes">
        </asp:EntityDataSource>
</asp:Content>

【问题讨论】:

  • 我无法重现这种行为。您能否显示更多的标记?或者至少解释一下你的标签层次结构?
  • 嗨,我发布了我页面的代码。感谢您抽出宝贵时间
  • Visual Studio 不会删除&lt;/p&gt; 标签,它只会将其移动到上一行的末尾(VS 不喜欢元素内容与其结束标签之间的空白)。跨度>
  • 我不确定我是否理解。所以在这种情况下,ValidationSummary 之前的

    标记将不是 clodes。对吗?

  • @GibboK,它确实已关闭。查看&lt;asp:ValidationSummary /&gt; 行的末尾。你会在那里找到&lt;/p&gt; 标签。

标签: asp.net visual-studio visual-studio-2010 design-time


【解决方案1】:

在 VS2008 中,替换为:

<p>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" /></p>

与:

<p>
<asp:ValidationSummary ID="ValidationSummary1" runat="server"></asp:ValidationSummary></p>

这可行,尽管与标记中的结束标签不一致。虽然在 IE8 中渲染是正确的。

为什么这个摘要控件需要包含在段落标签中?验证摘要呈现为块元素。

【讨论】:

    【解决方案2】:

    不要使用设计视图来编辑标记,始终使用源视图,即标记本身来编辑标记。

    IMO 设计视图只是一个简单的、只读的、用于验证的视图。

    【讨论】:

    • 您能否在您的 Visual Studio 上重现我的问题?谢谢
    猜你喜欢
    • 2019-07-09
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多