Ich versuche Suchfunktion mit Action zu machen.MVC Wo Zustand mit Suchfunktion
wird die Action Parameter wie
@Html.ActionLink("Intel Core i5", "Search", "Store", new { @searchString = "i5" }, null)
ich diesen Wert übergebe an der Steuerung geben, und es wird in der Steuerung arbeiten. Wenn ich jedoch versuche, den dezimalen Datentyp zu vergleichen, wird der Datentyp nicht angezeigt. Momentan ist der Prozessor varchar und ddisplaySize ist dezimal.
Ich weiß nicht, wie Displaygröße mit searchString- zu behandeln.
Mein Controller ist dies.
//Controller here
public ActionResult Search(string searchString)
{
var product = from a in _db.Product.Include(a => a.Category)
select a;
if (!String.IsNullOrEmpty(searchString))
{
//processor is working because searchString is string, however,
//displaySize is not working because of decimal value, and
// I don't know how to write Where condition in here.
product = product.Where(a => a.processor.ToUpper().Contains(searchString.ToUpper())
||
//a.displaySize.ToString().Contains(searchString.ToUpper()));
//I repalce to below code, but it has error
//'Entity does not recognize the method ''System.String ToString()' method.
Convert.ToDecimal(a.displaySize).ToString().Contains(searchString)
}
return View(product.ToList());
}
als Sie für die Beantwortung, aber ich habe eine Fehlermeldung anzeigt, ‚LINQ to Entities erkennt nicht die Methode‚System.String ToString()‘Methode‘. Wie kann ich Dezimal in String umwandeln, um mit SearchString zu vergleichen? – wholee1
Wie hast du das in dem Beispiel gemacht, das du zur Verfügung gestellt hast? War das der Fehler, für den Sie die Frage tatsächlich gestellt haben? –
Ja. nur habe ich die Codierung von meinem ersetzt, was ich vorher gepostet habe. Ich setze dasselbe wie 'Convert.ToInt32 (a.displaySize) .ToString(). Enthält (searchString)' in Where-Bedingung. – wholee1