2016-06-21 4 views
0

Это то, что я в настоящее время в моем Index.cs:Как сделать фильтрованный поиск с несколькими полями

@model IEnumerable<MvcApplication7.Models.vwtest21> 
<p> 
@using (Html.BeginForm("Index", "Home", FormMethod.Get)) 
{ 
    <b>Search By:</b> @Html.RadioButton("searchBy", "PROGCD", true) <text>PROGCD</text> 
    @Html.RadioButton("searchBy", "Date") <text>DOCRECDT</text><br /> 
    @Html.TextBox("search") <input type="submit" value="Search" /> 
} 
</p> 

Я хочу, чтобы преобразовать его из RadioButton на два поля отфильтрованного поиска для PROGCD и DOCRECDT с одним отправить кнопку. Ниже мой HomeController, который я понятия не имею, как конвертировать, если я изменю его на отфильтрованный поиск.

public class HomeController : Controller 
{ 
    private ProjectDBContext db = new ProjectDBContext(); 

    public ActionResult Index(string searchBy, string search) 
    { 


     if (searchBy == "Date") //searchBy == "PROGCD") 
     { 
      return View(db.vwtest21.Where(x => x.DOC_REC_DT1 == search).ToList()); 
     } 
     else 
     { 
      return View(db.vwtest21.Where(x => x.PROG_CD == search).ToList());   
     }   
    } 

ответ

0

Сначала измените свое представление, чтобы использовать текстовые поля, а не переключатели.

@model IEnumerable<MvcApplication7.Models.vwtest21> 
<p> 
@using (Html.BeginForm("Index", "Home", FormMethod.Get)) 
{ 
    <b>Search By:</b> 
    @Html.TextBox("progcd") <text>PROGCD</text> 
    @Html.TextBox("docrecdt") <text>DOCRECDT</text> 
    <input type="submit" value="Search" /> 
} 
</p> 

Затем измените свой контроллер, чтобы фильтровать новые текстовые поля.

public class HomeController : Controller 
{ 
    private ProjectDBContext db = new ProjectDBContext(); 

    public ActionResult Index(string progcd, string docrecdt) 
    { 
     return View(db.vwtest21.Where(x => x.DOC_REC_DT1 == docrecdt && x.PROG_CD == progcd).ToList()); 
    } 
} 

И условие (& &) означает, что только записи, удовлетворяющие обе поисковые фильтры будут возвращены. Вы можете изменить его на условие ИЛИ (||), если вы хотите вернуть записи, соответствующие условиям поиска.

+0

Спасибо, это именно то, что я ищу! – ayton

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