【发布时间】:2014-07-29 19:06:15
【问题描述】:
我有一张包含城市数据的表格: 在搜索输入字段中,用户键入任意数量的字符,然后按下“搜索”按钮。 还有另一个字段,用户可以通过下拉列表输入状态。
按下搜索按钮会触发对服务器控制器的 ajax 调用,该控制器接收名称的起始字符和状态的两个字符。
控制器应返回名称以提供的字符开头的城市列表。 如果通过了州,则列表应仅包含名称以提供的字符开头且位于州内的城市。
如果未通过州,则无论州如何,都会返回所有匹配的城市。
我找不到编写单个 Linq 语句的方法,因为我不知道如何编写状态查询部分: 目前我这样做:
public ActionResult selectCity(string searchString, string stateCode)
{
List<CityViewModel> mylist = new List<CityViewModel>();
IQueryable<City> mycities = null;
if (stateCode == "")
{
mylist = (from c in db.Cities
where c.name.StartsWith(searchString)
select c);
}
else
{
mylist = (from c in db.Cities
where ((c.name.StartsWith(searchString)) &&
(c.stateCode == stateCode))
select c);
}
<snip>
.....
.....
</snip>
return PartialView("_selComune",elenco);
}
我不敢相信没有办法通过单个查询来做到这一点。
【问题讨论】:
标签: c# asp.net-mvc linq wildcard