2012-04-14 9 views
0

Ich versuche, meine Suche auf einem Controller zu ändern, so dass es in der Lage ist, die Anzahl der übereinstimmenden Ergebnisse vom Benutzer in einer Suchzeichenfolge zu zählen. So würde ein Benutzer nach einem Filmnamen suchen und es gab 1 passenden Film a Die Nachricht würde sagen "1 Film entspricht Ihren Suchkriterien: 'Terminator'".Eine Nachricht anzeigen, die keine Suchergebnisse enthält?

Bisher ist dies mein Code, ich habe keine Fehler und es sucht die Daten gut, aber zählt nicht die Anzahl der Ergebnisse. Wenn jemand weiß, was ich tun muss, um die Suche zu erhalten, um eine Nachricht anzuzeigen dann Das wäre sehr hilfreich. Die Suchfunktion funktioniert, aber ich muss zählen, wie viele Übereinstimmungen gibt es zu den Daten & eine Nachricht anzeigen, wenn es keine Ergebnisse gibt oder wenn es gibt und wie viele.

Dank

public ViewResult Index(string sortOrder, string searchString) 
    { 
     ViewBag.NamesSortParm = string.IsNullOrEmpty(sortOrder) ? "Name desc" : ""; 
     ViewBag.MoviesSortParm = sortOrder == "MovieID" ? "Name" : "Director"; 
     var Movies = from s in MoviesRepository.GetMovies() 
        select s; 
     if (!string.IsNullOrEmpty(searchString)) 
     { 
      Movies = Movies.Where(s => s.Name.ToUpper().Contains(searchString.ToUpper()) 
            || s.Director.ToUpper().Contains(searchString.ToUpper())); 
     int count = Movies.Count(); 
     if (count == 0) 
     { 
      ViewBag.Message = "No matches found"; 
     } 
     else 
     { 
      ViewBag.Message = " Results"; 
     } } 
     switch (sortOrder) 
     { 
      case "Name": 
       Movies = Shows.OrderByDescending(s => s.Name); 
       break; 
      case "Director": 
       Movies = Movies.OrderByDescending(s => s.Director); 
       break; 
      default: 
       Movies = Movies.OrderBy(s => s.Synopsis); 
       break; 
     } 






     return View(Movies.ToList()); 





    } 

Antwort

1

Sieht aus wie ein Tippfehler zu mir. Ersetzen Sie diese Zeile:

ViewBag.Message = " Results"; 

mit diesem:

ViewBag.Message = count + " Results"; 

Stellen Sie außerdem sicher ViewBag.Message im Blick irgendwo setzen:

<div> @ViewBag.Message </div> 
+0

Ok dank il versuchen, dass keine im nicht würde die Viewbag-Nachricht in der Ansicht angezeigt, wäre das die gleiche wie im Controller ?, und ich nehme an, dass ich das im div der Suche lege? in der Ansicht?. – user1259076

+0

Ja, die ViewBag.Message wird nicht automatisch angezeigt. Fügen Sie einfach

@ViewBag.Message
, oder was auch immer, irgendwo in der Ansicht hinzu. – McGarnagle

+0

Vielen Dank es funktioniert :) – user1259076

Verwandte Themen