不可调用控制器Where语句上的模型变量
本文关键字:模型 变量 语句 Where 调用 控制器 | 更新日期: 2023-09-27 18:27:43
我有一个非常愚蠢的问题,但我不知道Visual Studio为什么会给我这个错误。
我在我的视图中制作了一个过滤文本框,并将字符串传递给我的控制器,以使用我的一个模型字符串生成where语句,我在模型字符串上得到错误,说它不可调用。。这是我的视图部分的文本框
@using (Html.BeginForm())
{
<p>
Filtro Descripcion: @Html.TextBox("SearchString")
<input type="submit" value="Seach" />
</p>
}
这是我的型号:
public partial class Pos
{
public System.DateTime Fecha { get; set; }
public string Rid { get; set; }
public string Pdv { get; set; }
public string Pla { get; set; }
public string Descripcion { get; set; }
public decimal Total { get; set; }
public int Cantidad { get; set; }
}
这是我的背景:
public partial class ArponClientPosContext : DbContext
{
static ArponClientPosContext()
{
Database.SetInitializer<ArponClientPosContext>(null);
}
public ArponClientPosContext()
: base("Name=ArponClientPosContext")
{
}
public DbSet<Pos> Pos { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new PosMap());
}
}
}
这是我的控制器索引方法,它给了我在哪里语句上的错误
public ActionResult Index(string searchString)
{
var db = new ArponClientPosContext();
var students = from s in db.Pos
select s;
if (!String.IsNullOrEmpty(searchString))
{
db = db.Pos.Where(s => s.Descripcion(searchString));
}
return View("~/Views/HomePos/Index.cshtml", db.Pos.ToList());
}
正是这部分:数据库。Pos.Where(s=>s.Description(searchString));它说"描述"不是一个可调用的对象
有人能解释我为什么会有这个问题吗?或者我做错了什么?任何帮助都将被视为
您是否正在尝试将Description与searchString进行比较?你想要完美搭配的吗?如果是这样,请使用.Equals()。如果希望它在Description中搜索该文本中"包含"的任何内容,请使用.Contains。如果希望不区分类型,请对Where中的两个值都使用.ToLower。
public ActionResult Index(string searchString = "")
{
var db = new ArponClientPosContext();
var lowerSearch = searchString.ToLower();
var students = from s in db.Pos
where s.Descripcion.ToLower().Contains(lowerSearch)
select s;
return View("~/Views/HomePos/Index.cshtml", students.ToList());
}
我用来解决这个问题的代码。