2012-05-03 3 views
0

У меня есть IEnumerable View. Эта страница просмотра (cshtml) содержит данные модели и некоторые данные формы. Они перечислены все данные моей модели из базы данных. я хочу, чтобы фильтровать эти данные по нескольким параметрам фильтров, таких как фильтр по городу, области, пол, дороги нет и т.д. все те фильтр в моей форме действия 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 

Мои параметры фильтра не являются обязательными. можно выбрать один или несколько параметров фильтра или ни один из них не может быть выбран. он дает ошибку Диапазон Переменные сообщения Я хочу отфильтровать свой набор результатов в каждом блоке состояния if. Является ли это возможным ??? если возможно, пожалуйста, дайте мне некоторые идеи ..... Заранее спасибо

+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

содержит сообщение об ошибке: «Переменная» переменной «posts» конфликтует с предыдущим объявлением сообщений. Я думаю, что эта ошибка только для сообщений Var. –

+0

Я вижу .... тогда я бы переименовал ваш var в другое. Может быть, он борется с этим. – MikeTWebb

+0

да ... но какой тип я должен давать сообщения ... –

Смежные вопросы