List <model> </model>中的简单下拉列表

时间:2013-02-24 20:24:11

标签: c# asp.net asp.net-mvc asp.net-mvc-3 razor

模型

@model List<Survey.SurveyQuestion>

SurveyQuestion有两个属性,QuestionIdQuestionText

Html.DropDownList("Questions", new SelectList(@Model))

@Html.DropDownList("Questions", new SelectList(@Model), "QuestionId", "QuestionText")

以上代码的输出:

Output from above code:

无法使用DropDownListFor,因为它无法识别字段 QuestionId (或实际上任何字段)。

@Html.DropDownListFor(item => item.QuestionId, new SelectList(Model, 
    "QuestionId", "QuestionText"), "--Select --"))

以下代码正确显示所有数据:

@foreach (var item in Model)
{
    <p>@item.QuestionId - @item.QuestionText</p>
}

1 个答案:

答案 0 :(得分:4)

您正在设置SelectList错误。请尝试这样做(为SO的可读性添加了行间距):

@Html.DropDownList(
    "Questions",
     Model.Select(m => new SelectListItem 
         {
             Value = m.QuestionId.ToString(),
             Text = m.QuestionText
         }))