0
私はactionLinkで検索機能を作成しようとしています。MVC検索条件付きの条件
ActionLinkのは、私は、この値を渡し、それがコントローラに動作しているよう
@Html.ActionLink("Intel Core i5", "Search", "Store", new { @searchString = "i5" }, null)
としてコントローラにパラメータを与えます。しかし、私は文字列のデータ型ではなく、10進データ型を比較しようとしています。現在、processorはvarcharで、dissplaySizeは10進数です。
searchStringを使ってdisplaySizeを処理する方法がわかりません。
私のコントローラはこれです。
//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() 'メソッド'。 searchStringと比較するために10進数を文字列に変換するにはどうすればよいですか? – wholee1
あなたが提供した例でこれをどうやってやっていたのですか?これは実際に質問を投稿したエラーですか? –
はい。ちょうど私が前に投稿したものから私のコードを置き換えました。 Where '条件でこの' Convert.ToInt32(a.displaySize).ToString()。Contains(searchString) 'と同じものを置きます。 – wholee1