ASP.NET MVC 4 ViewModel mit Daten DropDownList

Ich bin mit @html.EditorFor zu Rendern mein Modell in den edit-Modus, und eine dropdownlist wird nicht gerendert.

Hier mein ViewModel:

     public class RiskAutoViewModel
     {
       public RiskAutoViewModel()
       {
         VehicleMakeList = new SelectList(new List<VehicleMake>() { new VehicleMake() { Id = 1, Name = "Renault" }, new VehicleMake() { Id = 2, Name = "Peugeot" } });
       }


    public int NoClaimsDegree { get; set; }

    public int VehicleValue { get; set; }

    public int EngineCapacity { get; set; }

    public int VehicleMake { get; set; }

    public SelectList VehicleMakeList { get; set; }
  }

VehicleMake gerendert wird als textbox und VehicleMakeList ist, wird nicht dargestellt bei allen. Was ich möchte ist das Rendern einer dropdownlist mit der Liste der VehicleMake und setzen Sie seinen Wert mit dem von VehicleMake.

Wenn das Modell gespeichert wird, VehicleMake sollte festgelegt werden, um den Wert des ausgewählten Elements in der Liste.

Wie kann ich das tun ?

BEARBEITEN

Da kann ich nicht geben Sie einen beliebigen code in den Kommentar-Boxen unter, ich Schreibe ein follow-up hier.

Ich landete ein EditorTemplate wie:

<div class="editor-label">
    @Html.LabelFor(model => model.VehicleMakeList)
</div>
<div class="editor-field">
    @Html.DropDownListFor(model => model.VehicleMake, Model.VehicleMakeList)
    @Html.ValidationMessageFor(model => model.VehicleMake)
</div>

Und jetzt ist mein ViewModel sieht so aus:

[Required]
[ScaffoldColumn(false)]
public int VehicleMake { get; set; }

[Display(Name = "Marque", Prompt = "Marque", Description = "Renseigne la marque du véhicule")]
public SelectList VehicleMakeList { get; set; }

Nun das führt mich zu einer weiteren Frage (vielleicht sollte ich wie in einem anderen thread), aber ich habe eigentlich ZWEI dropdowns in dieser Ansicht. Und die Einträge in der zweiten dropdown-sind grundsätzlich dynamisch und Sie hängen von dem gewählten Eintrag in der ersten dropdown-Liste. Dieser ist tot einfach zu tun mit AJAX, aber mit MVC-ich bin verloren. Wie gehen die Menschen tun, die in der Regel ?

  • Und nur ein heads-up für Sie, wenn Sie sich entscheiden, Folgen Sie den @Html.EditorFor() mit einem @Html.DropDownlistFor, wirst du Probleme mit dem binden der VehicleMake Eigenschaft mit der dropdown-Auswahl, als es Wert ist, wird ermittelt, indem das Textfeld redered durch die EditorFor()
  • bearbeitet meine Antwort mit die einfachste Lösung
InformationsquelleAutor Sam | 2013-02-01
Schreibe einen Kommentar