@Html.EditorForModel() Dropdown

前端 未结 2 906
傲寒
傲寒 2020-12-20 06:06

I am working on MVC4 , using @Html.EditorForModel() , it is showing dropdownlist as a text box, I want to show Dropdown

2条回答
  •  盖世英雄少女心
    2020-12-20 06:08

    You could define a view model that will represent a dropdown:

    public class ItemsViewModel
    {
        public string SelectedValue { get; set; }
    
        public IEnumerable Values { get; set; }
    }
    

    which will be used in your main view model:

    public class MyViewModel
    {
        public ItemsViewModel DropDown1 { get; set; }
        public ItemsViewModel DropDown2 { get; set; }
        ...
    }
    

    Now all that's left is write a custom editor template for the ItemsViewModel which should be placed in ~/Views/Shared/EditorTemplates/ItemsViewModel.cshtml. Notice that the name and location of the template is important:

    @model ItemViewModel
    @Html.DropDownListFor(x => x.SelectedValue, Model.Values)
    

    and that's pretty much all it takes.

提交回复
热议问题