2016-05-24 5 views
0

OK、これは簡単なはずですが、私はピクルスに入っています。C#MVC - クエリ文字列でコントローラに渡されたeNum値に基づいて結果をフィルタリングする

MODEL

public enum ItemType 
    { 
     Article = 1, 
     Link = 2, 
     Event = 3, 
     Training = 4, 
     Job = 5 
    } 

    public class SiteItem 
    { 

    public int ID { get; set; } 
    public ItemType ItemType { get; set; } 
} 

私はこれがすべてのトレーニングのアイテムを返します

http://site/Admin/AllItems?type=4

をクエリ文字列に基づいて結果をフィルタリングします。

CONTROLLER

public ActionResult AllItems(int? passedItem) 
     { 
      IQueryable<SiteItem> siteItems;    

       siteItems = db.SiteItems.Include(s => s.ApplicationUser). 
        Include(i => i.TagLinks). 
        Where(x => x.Approved == true);  

       if (passedItem > 0) 
       {     
        siteItems = siteItems.Where(t => t.ItemType = passedItem); 
       } 

       siteItems = siteItems.OrderByDescending(a => a.DatePosted); 

      return View(siteItems.ToList());   
     } 

これは動作しません。クエリ文字列から整数値を渡して結果をフィルタリングすることはできません。データベースでは、ItemTypeフィールドには数字4,3,5などがあります。整数と整数を一致させたいだけです。

これはすべて意味があります。ありがとう。

答えて

0

あなたが財産

更新されたコード

siteItems = siteItems.Where(t => t.ItemType == (ItemType)pass 
+0

siteItems = siteItems.Where(T =をキャスト入力する必要があり、この

旧コード

siteItems = siteItems.Where(t => t.ItemType = passedItem); 

をお試しください> t.ItemType == (ItemType)passedItem); はい、それは動作します! Prasadありがとう。 :) – spankymac

+0

その私の喜びdr.cheerアップ –

関連する問題