我可以在视图模型中获取SelectList以使用EditorForModel进行渲染吗?

时间:2012-08-17 19:44:21

标签: asp.net-mvc-4

我想使用EditorForModel 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() City呈现正确,但States不会呈现为任何类型的列表(下拉列表或列表框)

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

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

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

您可以查看以下blog post,了解这些默认模板的实现方式。