Auffüllen razor DropDownList aus view-Modell

Habe ich ein benutzerdefiniertes Modell (sagen wir mal CustomModel) für das Auffüllen meiner razor DropDownList in der Ansicht:

namespace MyNamespace.Models
{
    public class SelectListItem
    {
        public string Value { get; set; }
        public string Text { get; set; }
    }

    public class ComponentTypeModel
    {
        private readonly List<ComponentType> componentTypes;

        [Display(Name = "Component Type")]
        public int SelectedCompTypeId { get; set; }

        public IEnumerable<SelectListItem> CompTypeItems
        {
            get
            {
                var allCompTypes = componentTypes.Select(f => new SelectListItem
                {
                    Value = f.Id.ToString(),
                    Text = f.Name
                });

                return allCompTypes;
            }
        }

        public IEnumerable<SelectListItem> DefaultCompTypeItem
        {
            get
            {
                return Enumerable.Repeat(new SelectListItem
                                               {
                                                   Value = "-1",
                                                   Text = "Select a component type"
                                               }, 
                                         count: 1);
            }

        }
    }
}

Dann aus meiner Sicht mache ich die folgenden mit razor:

@model MyNamespace.Models.CustomModel

@Html.LabelFor(m => m.SelectedCompTypeId);
@Html.DropDownListFor(m => m.SelectedCompTypeId, Model.CompTypeItems);

aber das zweite argument Modell.CompTypeItems in Zeile:

@Html.DropDownListFor(m => m.SelectedCompTypeId, Model.CompTypeItems);

generiert einen Kompilierungsfehler, die sagen, dass es nicht gültig ist. Irgendwelche Ideen?

  • Die syntax für DropdownListFor ist die richtige?
InformationsquelleAutor user1624552 | 2013-09-28
Schreibe einen Kommentar