2016-06-21 51 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轉換爲兩個場過濾的搜索爲PROGCDDOCRECDT一個提交按鈕。以下是我的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()); 
    } 
} 

AND條件(& &)意味着,只有同時滿足這兩個搜索篩選器記錄將被退回。如果您想要返回符合搜索條件的記錄,您可能希望將其更改爲OR條件(||)。

+0

謝謝,這正是我正在尋找的! – ayton