MVC Razor是否可以通过从List <string> ViewModel

问题描述

我正在尝试使用由foreach循环在viewmodel中迭代的字符串列表生成的SelectListItems在视图中填充DropDownListFor。

以下是我在viewmodel中使用的属性

public string Selected {get; set;}
public List<string> Strings {get; set;}

这是我的视图语法:

@Html.DropdownListFor(
    model => model.Selected,new List<SelectListItem>
    {
        foreach(var answer in Model.Strings)
        {
            new SelectListItem
            {
                Value = answer,Text = answer
            };
        }
    },new { htmlAttributes = new { @class = "form-control" } })

Visual Studio在“ foreach”下引发错误内容为:

} expected
) expected
; expected

和最后一个)下的另一个错误内容为:

new{
; expected
} expected

我不确定自己在做什么错或如何消除这些错误。任何建议将不胜感激。谢谢。

解决方法

List<SelectListItem> item = Model.Strings.ConvertAll(answer =>
                {
                    return new SelectListItem()
                    {
                        Text = answer.ToString(),Value = answer.ToString()
                    };
                });
            
@Html.DropDownListFor(model => model.Selected,item,new { htmlAttributes = new { @class = "form-control" } })

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...