我想知道如何实现搜索功能?使用linq谓词的搜索动作。 ASP.NET MVC
让我们来看看我如何想象它。我将使用employee
模型作为示例。所以employee
保持相当标准的属性:'Id',EmployeeId
,Name
,Birthday
。
我Repository
对象持有的方法,如:
IQueryable<T> Get(Expression<Func<T, Boolean>> predicate);
所以后来Search
(属于EmployeeController
)动作看起来像
[HttpPost]
public ViewResult Search(Guid Id, Guid EmployeeId, String Name, DateTime birthday)
{
// call repository.get(x => x.Name == Name && x.Id == Id ...);
}
的Search
视图,然后将举行形式文本框对应于搜索标准/动作参数。
但是有搜索能力耦合到模型/控制器。所以我需要为每个控制器创建类似的操作。
如何以一些更好的方式?
谢谢!
没有。一点也不。事情不在谓词重复中(显然谓词会不一致)。事情是在行动中重复控制器。我想知道也许我可以抽象出'Search'功能吗? – lexeme 2012-02-10 08:38:47
我不太确定我是否遵循,你是否说你在每个视图上的每种类型的实体都有类似的搜索表单?或者你是说你有一个搜索表单需要在多个视图中使用,例如在标题中? – devdigital 2012-02-10 08:47:18
现在我都没有。但你最后的选择是我想要的。我不想更改存储库类。但我会考虑你的建议。 – lexeme 2012-02-10 09:08:57