如何在asp.net中选择Html选择的索引?

Ray*_*phy 3 c# asp.net

我的代码如下:

 <select id="test">
        <option value="a">aaa</option>
        <option value="b">bbb</option>
    </select>
    <asp:Button ID="btnTest" runat="server" Text="Test it!" onclick="btnTest_Click" />
Run Code Online (Sandbox Code Playgroud)

我需要在回发时获取所选索引未选中的值.我怎么能用asp.net做到这一点?这是我填写select html的代码:

<script language="javascript" type="text/javascript">
    $(document).ready(function() {
    $("#<%=btnTest.ClientID %>").click(function(){
    $.ajax(
    { url: "StateCity.asmx/ReferItems?id=" + getParameterByName('id'),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        type: "POST",
        success: function(data) {
        $("#test").empty();
        $.each(data.d, function() {
        $("#test").append($("<option></option>").val(this['Value']).html(this['Text']));
        });

        },
        error: function() { alert("Error"); }
    }) 
    })
</script>
Run Code Online (Sandbox Code Playgroud)

sll*_*sll 5

  1. 添加runat="server"属性到<select>
  2. 在代码后面(按钮处理程序代码)执行:
int selectedIndex = (test as HtmlSelect).SelectedIndex;
Run Code Online (Sandbox Code Playgroud)

编辑:回答关于-1SelectedIndex属性的值的评论

MSDN HtmlSelect.SelectedIndex属性:

可以不选择任何项目.如果未选择任何项,则SelectedIndex属性包含值-1.这通常在页面首次加载并且默认情况下未选择项目时发生.提供代码以在引用Items集合中的项目之前测试此值.否则,如果索引超出集合的范围,则抛出异常.