Asp.net mvc 4 我可以在视图模型中获得一个SelectList以使用EditorForModel进行渲染吗?

Asp.net mvc 4 我可以在视图模型中获得一个SelectList以使用EditorForModel进行渲染吗?,asp.net-mvc-4,Asp.net Mvc 4,我想有一个状态列表框呈现使用编辑器Formodel Html助手。 我的视图模型: public class MyViewModel { public MyewModel() { States = new SelectList(MyModel.RegionsToSelectList,"Value","Text"); } [DataType(DataType.Text)] public string City { get; set; }

我想有一个状态列表框呈现使用编辑器Formodel Html助手。 我的视图模型:

public class MyViewModel
{
    public MyewModel()
    {
        States = new SelectList(MyModel.RegionsToSelectList,"Value","Text");
    }

    [DataType(DataType.Text)]
    public string City { get; set; }

    [Display(Name = "States")]
    public SelectList States { get; private set; }
}
在我看来,我有
@Html.EditorForModel()
城市
正确渲染,但
状态
不会渲染到任何类型的列表(下拉列表或列表框)

如果我使用
@Html.DropDownList(“mylistname”,Model.States)
它会正确呈现。 我真的希望在
ForModel
过程中渲染它


可以这样做吗?

如果要生成下拉列表,需要使用Html.dropdownlistforhelper。使用SelectList作为某些属性的类型并不意味着默认编辑器模板将呈现一个框。因此,您必须编写一个自定义编辑器模板

您可以查看以下内容,了解这些默认模板是如何实现的