2016-07-13 4 views
0

Ich verwende diese plugin, um ein Autocomplete-Feld innerhalb eines Formulars zu erstellen. Es ist alles in Ordnung, außer wenn ich das Formular absende, ist das Feld, das an den Controller im Modell übergeben wird, null. Ich weiß nicht, wie ich die erhaltenen Daten zurückgeben soll.Typeahead bootstrap pass-Parameter zum Modellieren als null

, dass mein Code html ist:

@Html.TextBoxFor(m => m.Team, new { @type = "text", id = "team", Name = "query", @class = "form-control", placeHolder = "Team (Ej -> Barcelona)", autocomplete = "off" }) 

Code JS:

$('#team').typeahead({ 
      ajax: "/Home/AutocompleteTeam", 
      responseText: [ 
       $('#team').val()   
      ] 
     }); 

C# -Code:

public ActionResult AutocompleteTeam(string query) 
    { 

     List<string> teams = new List<string>(); 
     List<TeamServiceModel> teamsService = teamService.ListTeamsByQuery(query); 
     foreach (var team in teamsService) 
     { 
      if(team.Name.Equals("DEFAULT")) 
      { 
       continue; 
      } 
      else 
      { 
       teams.Add(team.Name); 
      }    
     } 
     return Json(teams, JsonRequestBehavior.AllowGet); 
    } 

Der Dienst, der die Liste zurückkehrt ich von der Abfrage bin Filterung funktioniert.

Antwort

0

Typeahead filtert bereits Ergebnisse. Sie können einen Ajax-Aufruf ausführen, um alle Teams zu erhalten (Rückgabe eines Arrays) und das lokale Feld in typeahead mit Array-Werten festlegen.

Weitere hier http://www.bootply.com/ljIOxm3qDi

+0

Mein Problem ist, die Daten an die Steuerung zurückgeführt. Das model.team ist null, ich weiß nicht warum. Kann mir jemand helfen? –

+0

ändern Name = "query" zu Name = "Team" .Wenn Wert ist post auf serverseitige Eingabe muss name = "Team" –

+0

Oh mein Gott! Was für ein schrecklicher Fehler !! Vielen Dank Alexandru! –

Verwandte Themen