Asp.net DropDownList SelectedIndex始终=1

Asp.net DropDownList SelectedIndex始终=1,asp.net,Asp.net,我在页面中有一个下拉列表。所有列表项的值均为=“0”。我已关闭viewstate。当页面发回时,无论列表中的选择如何,页面加载事件中选定的索引始终=1。如果列表项的值不同,则selectedIndex具有正确的值。这是正常的行为吗?如果dropdownlist成为HTML选择列表,那么是的,浏览器会提交每个选项的value属性,因此如果它们都相同,您将始终获得相同的值。嗯,差不多。selectedIndex告诉您哪个选项的值已回发。由于所有的值都相同,浏览器可以选择它喜欢的任何选项,并且是正确的

我在页面中有一个下拉列表。所有列表项的值均为=“0”。我已关闭viewstate。当页面发回时,无论列表中的选择如何,页面加载事件中选定的索引始终=1。如果列表项的值不同,则selectedIndex具有正确的值。这是正常的行为吗?

如果dropdownlist成为HTML选择列表,那么是的,浏览器会提交每个选项的value属性,因此如果它们都相同,您将始终获得相同的值。

嗯,差不多。selectedIndex告诉您哪个选项的值已回发。由于所有的值都相同,浏览器可以选择它喜欢的任何选项,并且是正确的。“有趣”属性是选项的值,而不是文本。

是。这些值用于指示回发时所选项目的内容。如果所有项目都具有相同的值,则它会找到与该值匹配的第一个项目,因此SelectedIndex=1


实践建议在值字段中使用ID。

这是预期的行为。HTML SELECT元素只发回值,而不是文本。如果所有选项都具有相同的值,则看起来每个选项都被选中,因此ASP.Net会选择第一个选项


如果不使用该值,可以忽略它,它将与文本相同。或者可以显式地将该值设置为与文本相同的值。另一种选择是使用列表项的索引作为值。但是,除非您使用不同的值(以HTML格式呈现),否则下拉列表或多或少是无用的。

您可以为列表添加代码吗?可能更容易看到发生了什么