我可以在视图模型中获得一个SelectList来使用EditorForModel进行渲染吗



我想要一个使用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过程中进行渲染。

这能做到吗?

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

你可以看看下面的博客文章,看看这些默认模板是如何实现的。

最新更新