ドロップダウンリストを検証するために必要なフィールドバリデーターがあります。このドロップダウンリストは自動ポストバックで、causevalidation プロパティは false に設定されています。
問題は、デフォルトのアイテムを選択すると、検証メッセージが表示されますが、それでもポストバックが行われることです。そして、ポストバックの後、メッセージは消えます。
コードのスニペットは次のとおりです。
<asp:RequiredFieldValidator ID="ContactMethodRequired" runat="server" ControlToValidate="ContactPreferences"
Display="Dynamic" ErrorMessage="Please choose your contact method"
EnableClientScript="true" InitialValue=""></asp:RequiredFieldValidator>
<div>
<asp:DropDownList ID="ContactPreferences" runat="server" AutoPostBack="true" CausesValidation="false">
<asp:ListItem Text="Select" Value="" Selected="True"></asp:ListItem>
<asp:ListItem Text="Email" Value="Email"></asp:ListItem>
<asp:ListItem Text="Phone" Value="Phone"></asp:ListItem>
</asp:DropDownList>
</div>