【发布时间】:2011-07-13 13:07:56
【问题描述】:
我正在尝试在客户列表上实现搜索功能,该功能在 Asp.Net 网站上的本教程中有详细说明,
在我的控制器中,我有以下内容
public ViewResult Index(string sortOrder, string searchString)
{
ViewBag.CustomerNameSortParm = String.IsNullOrEmpty(sortOrder) ? "CustomerName desc" : "";
ViewBag.PrimaryContactNameSortParm = sortOrder == "PrimaryContactName" ? "PrimaryContactName desc" : "PrimaryContactName";
var cust = repository.Customers;
if (!String.IsNullOrEmpty(searchString))
{
cust = cust.Where(c => c.CustomerName.ToUpper().Contains(searchString.ToUpper())
|| c.PrimaryContactName.ToUpper().Contains(searchString.ToUpper()));
}
switch (sortOrder)
{
case "CustomerName desc":
cust = repository.Customers.OrderByDescending(s => s.CustomerName);
break;
case "PrimaryContactName":
cust = repository.Customers.OrderBy(s => s.PrimaryContactName);
break;
case "PrimaryContactName desc":
cust = repository.Customers.OrderByDescending(s => s.PrimaryContactName);
break;
default:
cust = repository.Customers.OrderBy(s => s.CustomerName);
break;
}
return View(cust.ToList());
}
if 语句检查值并应使用 LINQ、WHERE 语句过滤列表,
我在视图中设置了文本框
@using (Html.BeginForm())
{
<p>
Find by name: @Html.TextBox("SearchString")
<input type="submit" value="Search" /></p>
}
但是,当我输入客户名称时,结果没有被过滤,我使用的是 SQL Server 2008 R2,有其他人遇到过这个问题吗?要让 Contains 方法正常工作,还需要其他什么吗?
感谢您的建议?
利亚姆
【问题讨论】:
标签: asp.net-mvc-3 entity-framework-4 repository-pattern