2017-04-10 1 views
0

Ich mache ein ASP.NET Web Api 2-Projekt. Ich nenne die API als POST von einem Formular.Optionsfeld, Dropdown-Liste, Kontrollkästchen in ASP.NET Web Api 2 C#

Ich habe eine Klasse, die die Form implementiert:

public class Form1 
    { 
     public bool Radio0 { get; set; } 
     public bool Infrastructure { get; set; } 
     public bool Loadinfrastructure1 { get; set; } ...... 

und in der Form:

<form action="...../api/GetInfo" method="post"> 
     <div class="radio"> 
      <input type="radio" name="radio0" value="yes"> 
     </div> 
     <div class="radio"> 
      <input type="radio" name="radio0" value="no"> 
     </div> 
     <div class="col-12 padding-bottom"> 
      <select name="infrastructure" id="infra"> 
        <option disabled selected> -- choose -- </option> 
        <option value="">string1</option> 
        <option value="">string2</option> 
        <option value="">string3</option> 
        <option value="">string4</option> 
       </select> 
     </div> 
     <div class="checkbox block"> 
       <input type="checkbox" name="loadinfrastructure1" id="loadinfrastructure"> 
       <label for="loadinfrastructure">no</label> 
     </div> 
    </form> 

und der POST-Methode:

public Form1 Post(Form1 model) 
{ 
    return model; 
} 

ich die Methode aufrufen kann und alle anderen Felder sind korrekt, aber das Optionsfeld (Radio0) und das Kontrollkästchen ist immer falsch, die Dropdown-Liste ist ohne Wert. Warum und wie repariere ich es? Danke.

+0

Woher sollte es wissen, dass "ja" oder "nein" sich auf einige boolesche Werte beziehen? –

+0

Sie sollten wahr falsch übergeben –

+0

danke es funktioniert, nun, ich habe nicht das Design, so dass ich diesen Teil verpasst habe! aber jetzt finde ich heraus, dass die Dropdown-Liste und das Kontrollkästchen auch nicht funktionieren! Siehe die Bearbeitung –

Antwort

0

Ich fand die Lösung. das Problem mit Radiobox war wie in den Kommentaren erwähnt:

<input type="radio" name="radio0" value="True"> 

value = „true“ statt Ja und auch falsch anstelle von No

das Problem mit Kästchen zum Ankreuzen ist, dass ich hinzufügen:

<input type="checkbox" name="loadinfrastructure1" value="true" id="loadinfrastructure"> 

müssen hinzufügen: value = "true" Um den Binder zu zwingen, den Wert zu binden.

das Problem mit Dropdownlist war: , dass kein Wert vorhanden ist: (mein Fehler)

<option value="... value">string1</option> 

hoffen, dass die Antwort ist klar! Viel Glück für alle!