C# 动态Dropdownlist值未使用服务器标记显示

C# 动态Dropdownlist值未使用服务器标记显示,c#,asp.net,dropdownlistfor,C#,Asp.net,Dropdownlistfor,我目前正在使用此代码尝试在asp中填充我的下拉列表 for (int i = 0; i < items.Count; i++) { models.Add(i+1, items.ElementAt(i).model); } ddl_Model.DataTextField = "Value"; ddl_Model.DataValueField = "Key"; ddl_Model.DataSource = models; ddl_Model.DataBind();

我目前正在使用此代码尝试在asp中填充我的下拉列表

for (int i = 0; i < items.Count; i++)
{
    models.Add(i+1, items.ElementAt(i).model);
}
ddl_Model.DataTextField = "Value";
ddl_Model.DataValueField = "Key";
ddl_Model.DataSource = models;
ddl_Model.DataBind();             
for(int i=0;i
但是,在使用SelectedItem或SelectedValue时,它总是显示为“我的列表为空”

我相信这是因为我在填充之前从一开始就声明了一个空列表

<h2>Please Select your Model:</h2>
<asp:DropDownList ID="ddl_Model" AppendDataBoundItems="True"  runat="server" >
</asp:DropDownList>
请选择您的型号:
我可以知道如何从下拉列表中获得正确的值吗


提前感谢。

这是ViewState问题。基本上,您的下拉列表在回发事件期间不保持状态。第一件事是检查您是否为页面启用了视图状态

<asp:Page EnableViewState="True" />

第三件事是使用debug,检查在调用ddl_Model.DataBind()代码之后是否调用ddl_Model.SelectedIndex。

在哪个方法/事件期间填充ddl_模型?ddl_模型是否正确填充?何时检查ddl_模型是否具有SelectedItem/值?
if(!IsPostBack)
{
//your above code
}