2012-05-03 88 views
0

我有一個IEnumerable View.this視圖頁面(cshtml)包含模型數據和form.it的一些數據。我從數據庫中列出了模型的所有數據。我想通過多重過濾選項這些數據進行過濾,例如通過市,區,地,道路沒有等所有這些過濾器是在我的形式field.My行動這樣的過濾器:
在asp.net中過濾結果集mvc3

                      [HttpPost] 
    public ViewResult SearchPost() 
     { 

     var posts =db.posts.Include("user").ToList(); 

     if (Request.Form["searchString"] != null) 
     { 
      posts = (from posts in db.posts where posts.area 
      ==Request .Form["searchString"]).ToList();      
     } 
     if (Request.Form["searchString2"] != null) 
     { 
      posts = (from posts in db.posts where posts.city 
      ==Request.Form["searchString2"]).ToList(); 
     } 
      if (Request.Form["searchString3"] != null) 
     { 
      posts = (from posts in db.posts where posts.floor 
      ==Request.Form["searchString3"]).ToList(); 
     } 


     return View(posts); 
     } 

我查看網頁:

@using (Html.BeginForm()){ 
    <p> Area: @Html.TextBox("SearchString") 
    <p> City: @Html.TextBox("SearchString2") 
    <p> Floor: @Html.TextBox("SearchString3") 
    <input type="submit" value="Filter" /></p> 
    } 


    >.....list of Model Data 

我所有的過濾器選項都是可選的。可以選擇一個或多個過濾器選項或者不選擇它們中的任何一個。它給錯誤範圍變量帖子我想篩選我的結果集在每個條件塊。可能嗎 ???如果可能的話請給我一些意見.....在此先感謝

+0

你可以更具體的錯誤信息? – MikeTWebb

回答

0

它總是一個好主意,檢查空& &運行您的查詢之前結果的任何()。篩選器1和/或2可能會排除您的所有結果。

if (Request.Form["searchString"] != null)   
{ 
    if ((posts!=null) && (posts.Any())) 
     { 
       posts = (from posts in db.posts where posts.area 
       ==Request .Form["searchString"]).ToList();         
     } 
}   
if (Request.Form["searchString2"] != null)   
{    
    if ((posts!=null) && (posts.Any())) 
     { 
       posts = (from posts in db.posts where posts.area 
       ==Request .Form["searchString2"]).ToList();         
     } 
}    
if (Request.Form["searchString3"] != null)   
{ 
    if ((posts!=null) && (posts.Any())) 
     { 
       posts = (from posts in db.posts where posts.area 
       ==Request .Form["searchString3"]).ToList();         
     } 
}    
+0

它給出了錯誤:範圍變量'帖子'與之前的帖子聲明發生衝突。我認爲這個錯誤只適用於Var帖子.. –

+0

我看到....然後我會將你的var重命名爲其他東西。也許它正在爲此而掙扎。 – MikeTWebb

+0

是的......但是我應該給帖子什麼類型...... –