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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie erschweren sich selbst.
Nutzen Sie einfach dieses Modell:
Dann in deinem controller:
Dann aus Ihrer Sicht: