【发布时间】:2012-04-12 17:45:32
【问题描述】:
我需要在无法使用模型的视图中重新填充一种过滤器(为了创建表,已经使用模型带来对象的 IEnumerable)。
如何填写过滤器输入,以便用户不必自己填写?
我正在使用 ASP.NET MVC3。
图形示例,更清晰:
public ViewResult Consulta(string dominio, string cliente, DateTime?
desde, DateTime? hasta, int? estado, string origen, int? reclamoid)
{
var reclamos = db.Reclamos.Where(/*Apply filters, etc*/);
return View(reclamos.ToList());
}
如您所见,这些太多了,无法为每个过滤器使用 ViewBag,所以我想知道是否有办法以复数方式做到这一点。
提前致谢。
【问题讨论】:
-
您可以在 ViewData、ViewBag 或 TempData 的一部分中传递模型。将所有这些属性移动到 FilterModel 并将模型作为 ViewData 的一部分传递
-
有什么例子吗?我的意思是,不确定该解决方案的语法是什么。
-
@Umagon - 语法?您只需创建一个包含所有过滤器属性的包装模型类。然后你将该类的一个实例分配给 ViewBag.Filters 或其他东西,然后在你的视图中使用 ViewBag.Filters.hasta 或 ViewBag.Filters.origen
-
哦。我误解了答案。看起来不错,但在这种情况下,我想我会使用上面的答案。无论如何,感谢两者!
-
这应该作为答案,这是一个很好的方法。
标签: c# asp.net-mvc asp.net-mvc-3 linq razor