Это нормальное поведение для элемента управления HTML SELECT
.
Если не используется выбранное свойство, оно всегда будет начинаться с первого элемента (индекс 0).
Во многихВ таких случаях я не хочу этого в ASP.NET, потому что я специально хочу, чтобы пользователь выбрал опцию.
Поэтому я добавляю пустой элемент, который затем можно проверить.
т.е.
<asp:DropDownList runat="server" DataSourceID="SomeDS" AppendDataBoundItems="true"> // Notice the last property
<asp:ListItem Text="Please select an option" Value="" />
</asp:DropDownList>
Таким образом, я могу установить валидатор, который проверяет, является ли значение пустым, заставляя пользователя сделать выбор.