我有一个带有两个DropDown框的MVC项目,您可以从两个不同的列表中进行选择。在第一个列表中选择年龄,在第二个列表中选择一个名称。 另外,他们都很好。如果我选择一个名称,视图将返回具有给定名称的所有人,如果我选择年龄,则会发生同样的事情。问题是当我尝试组合两个列表(下拉列表)时。这是代码:
else if (!string.IsNullOrEmpty(age) && (string.IsNullOrEmpty(name)))
{
return View(person.Where(d => d.age == ages));
}
else if (string.IsNullOrEmpty(age) && (!string.IsNullOrEmpty(name)))
{
return View(person.Where(c => c.name == names));
}
else if (!string.IsNullOrEmpty(age) && (!string.IsNullOrEmpty(name)))
{
//CODE TO RETURN VIEW MATCHING BOTH CRITERIA
// For example: IF age is 25 and Name is Bob, i´d like to display all
// 25-year olds named BOB...If there is no 25y/old named bob
// return an empty list
}
答案 0 :(得分:3)
您可以合并.Where()
子句并简化所有这些。然后只需构建条件并使用单个return
语句。像这样:
if (!string.IsNullOrEmpty(age))
person = person.Where(d => d.age == ages);
if (!string.IsNullOrEmpty(name))
person = person.Where(c => c.name == names);
return View(person);
这样就可以应用任何提供的标准。
答案 1 :(得分:2)
您可以将条件与linq
方法
if (!string.IsNullOrEmpty(age) && !string.IsNullOrEmpty(name))
{
return View(person.Where(p => p.name == name && p.age == age).ToList());
}
此代码返回persons
,其名称和年龄对应于条件,如果未找到结果,则返回空列表