如何使用多个字段进行过滤搜索

时间:2016-06-21 23:50:51

标签: asp.net-mvc

这是我目前在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());        
        }           
    }

1 个答案:

答案 0 :(得分: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条件(&amp;&amp; )表示只返回符合两个搜索过滤条件的记录。如果要返回满足搜索条件的记录,您可能希望将其更改为OR条件( || )。

相关问题