【发布时间】:2011-03-22 07:57:51
【问题描述】:
我在 ASP.NET 中使用 Visual Studio 2010,后面带有 C# 代码。
我在源代码视图中有一个带有代码的 ASP.NET 页面:
<p>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
</p>
如果我在设计视图中切换并返回到 VS 中的源视图,它会意外地自动删除最后一个 </p>。
您的 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 不会删除
</p>标签,它只会将其移动到上一行的末尾(VS 不喜欢元素内容与其结束标签之间的空白)。跨度> -
我不确定我是否理解。所以在这种情况下,ValidationSummary 之前的
标记将不是 clodes。对吗?
-
@GibboK,它确实已关闭。查看
<asp:ValidationSummary />行的末尾。你会在那里找到</p>标签。
标签: asp.net visual-studio visual-studio-2010 design-time