我是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);
}
我跑的时候不会给我一个错误,但它没有做任何事情。我想在选择下拉列表中的一个选项后开始过滤。
非常感谢。
答案 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语句了。
如果你需要我,我可以更详细地解释一下。