Mattytommo 有一个如何创建一个新的复杂模型的例子,但我还有另外两种方法。
首先是创建一个定义更好的复杂模型,因为这为您提供了一个更明确的模型。它包含您的过滤器和孤立的结果。
public class MyFilterModel
{
public string Dominio { get; set; }
public string Cliente { get; set; }
public DateTime? Desde { get; set; }
public int? Estado { get; set; }
public string Origen { get; set; }
public int? Reclamoid { get; set; }
}
public class MyViewModel
{
public MyFilterModel Filters {get;set;}
public IEnumerable<DataRow> Results {get;set;}
}
另一种选择是保留现有模型,但使用 ViewBag 或 ViewData 来传递过滤器模型:
public class MyFilterModel
{
public string Dominio { get; set; }
public string Cliente { get; set; }
public DateTime? Desde { get; set; }
public int? Estado { get; set; }
public string Origen { get; set; }
public int? Reclamoid { get; set; }
}
在您的控制器中
public ViewResult Consulta(MyFilterModel filters)
{
ViewBag.Filters = filters;
var reclamos = db.Reclamos.Where(/*Apply filters, etc*/);
return View(reclamos.ToList());
}
在你看来
@model MyViewModel
@{
MyFilterModel filters = ViewBag.Filters as MyFilterModel;
}
@Html.EditorFor(m => filters.Dominio)