【发布时间】:2020-01-30 05:31:39
【问题描述】:
public ActionResult Index(FormModel form)
{
using (DBModels db = new DBModels())
{
var clients = from c in db.Clients
select c;
if (!String.IsNullOrEmpty(form.SearchString))
{
clients = clients.Where(s => s.Full_Name.Contains(form.SearchString) || s.Class.Contains(form.SearchString)
|| s.Membership_Type.Contains(form.SearchString) || s.Membership_Type.Contains(form.SearchString) ||
s.Notes.Contains(form.SearchString) || s.ClientID.Equals(form.SearchString));
}
if (form.IsChecked != null)
{
clients = clients.Where(t => t.Paid == form.IsChecked);
}
return View(clients);
}
}
不明白为什么会发生此错误。我添加了一个搜索框来搜索数据库。我还添加了一个复选框来显示未付费客户。当我改变
return View(clients);
返回
return View(db.Client.ToList());
它有效,但这是我试图避免的,因为它显示了所有列表,而不是显示 SearchString 中的那些的“客户”变量。
【问题讨论】:
-
当您的视图尝试访问列表时,DBModel 已被释放,因此您的错误发生了。您可以通过多种方式解决此问题。通过更改 db 变量的生命周期...使其成为成员,或者您可以更改控制器和视图以传递所需的参数以在控制器中进行过滤。在不知道视图中发生了什么的情况下,很难提供答案
标签: c# .net asp.net-mvc