如何使用下拉列表进行过滤

时间:2015-01-29 15:53:44

标签: jquery asp.net

我是asp.net mvc的新手,我将非常感谢您的帮助。

我设计了一个下拉列表,用于从数据库中检索名称列表,我想在选择下拉列表后进行过滤。 我的观点:

<div>@Html.DropDownList("DropDownList", "Select")</div>
public ActionResult Index(string DropDownList)
    if (DropDownList == "Unknown") {
       searchPerson = searchPerson.Where(o => o.Person.PersonStatusId == 1);
    }  
    if (DropDownList == "Brother") { //something selected
        searchPerson = searchPerson.Where(o => o.Person.PersonStatusId == 4);
    }

我跑的时候不会给我一个错误,但它没有做任何事情。我想在选择下拉列表中的一个选项后开始过滤。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您需要拨打后端电话。除非你设置了ajax调用,否则它不会触发。

Jquery的

//This will fire when you select a value. Make sure that the select list has the same id as 
//the one you are listening to. For instance Here the Id im listening to is selectList.

$("#selectList").change(function(){

    $.get("@Url.Action("GetPeople")",{id : $(this).val()}, function(results){
         //do what you want with results
    })

})

在后端制作另一个get方法。调用索引方法更多的是获取视图而不是数据。

C#

[HttpGet]
public ActionResult GetPeople(int id)
{
    //returned as json
    return Json(searchPerson.Where(o => o.Person.PersonStatusId == id));
}

在您的选择列表中,文本必须相同,但值必须是相应的PersonStatusId。这样你就不必做那些if语句了。

如果你需要我,我可以更详细地解释一下。