2017-10-11 1 views
0

Ich habe eine MVC Web App mit Entity Framework für ein Abwesenheitsantragssystem eingerichtet. Das Modell RequestModel hat einen Wert LeaveType, den ich dem Benutzer aus einer Dropdown-Liste auswählen möchte. Der Code für die LeaveType Eingang auf TheView Seite ist wie folgt:Kann eine Dropdown-Liste keine Daten von der Ansicht an den Controller übergeben?

<div class="form-group"> 
     @Html.Label("Leave Type", htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.DropDownList("LeaveTypes") 
     </div> 
    </div> 

Die Urlaubsarten werden in einer Liste von Strings durch die viewbag vergangen, und feine angezeigt wird, wenn die Web-Seite anzeigen und ermöglicht es Ihnen, einen auszuwählen. Beim Debuggen kann ich jedoch sehen, dass das, was Sie auswählen, niemals zur Create-Methode von HttpPost übergeht, sondern nur den Wert als null anzeigt. Der Beitrag erstellen öffnet als solche mit der folgenden Bind-Befehl:

// POST: Request/Create 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Create([Bind(Include = "ID,LeaveType,FullName,Email,StartDate,EndDate,LeaveLength,Details,RequestDate,ReplyDate,Accepted,Special")] RequestModel requestModel) 
    { 

ich stark irgendwelche Ideen, was schätzen würde ich vielleicht verpasst haben. Ich kann alle anderen Teile des Codes hinzufügen, wenn sie helfen würden, die Ursache des Problems zu finden, lassen Sie es mich wissen.

+0

Können Sie, bitte, zeigen, wie Sie Ihre ViewBag init. –

Antwort

1

Sie erstellen ein Dropdown mit dem Namen LeaveTypes aber binden Sie es als LeaveType. Ändern Sie den Namen der Dropdown entsprechend:

@Html.DropDownList("LeaveType") 

... oder benutzen

Html.DropDownListFor(m => m.LeaveType, ...) 

Methode

Verwandte Themen