Я пытаюсь выполнить функцию поиска с действиемLink.MVC Где условие с функцией поиска
ActionLink передаст параметр на контроллер, такой как
@Html.ActionLink("Intel Core i5", "Search", "Store", new { @searchString = "i5" }, null)
я передать это значение, и он работает в контроллере. Однако, когда я пытаюсь сравнить десятичный тип данных, а не строковый тип данных. В настоящее время процессор - varchar, а discplaySize - десятичный.
Я не знаю, как обращаться с displaySize с помощью searchString.
Мой контроллер - это.
//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());
}
Чем вы отвечаете, но у меня есть ошибка: «LINQ to Entities не распознает метод« System.String ToString() «method». Как преобразовать десятичную строку в строку для сравнения с searchString? – wholee1
Итак, как вы это делали в примере, который вы предоставили? была ли это ошибкой, для которой u фактически отправил вопрос? –
Да. просто я заменил код, который я написал ранее. Я поставил то же самое, что и «Convert.ToInt32 (a.displaySize) .ToString(). Содержит (searchString) в условии Where. – wholee1