按日期范围c#mvc4过滤数据

时间:2014-08-14 10:24:42

标签: c# sql asp.net-mvc linq asp.net-mvc-4

第一张桌卡:CardId, Description。 - 保留所有可用卡的记录Second Table RegistartionDt:RegistartionDtId, RegisteredDateTime , CardId。保留使用特定卡的时间和数据数据。

我想制作一个搜索功能,按日期搜索卡片。例如,用户将从下拉菜单中选择日期。开始日期和结束日期,并搜索该范围内使用的卡片。

到目前为止,我有这个:

public ActionResult List ()
{
    CardDBEntities _db = new CardDBEntities();

    var cards = (from c in _db.Cards
                 join d in _db.RegistrationDTs 
                 on c.CardId equals d.CardId
                 where d.RegistrationDateTime >= startDate && 
                       d.RegistrationDateTime <= endDate
                 select new
                 {
                     d.CardId,
                     c.Description
                 }).OrderByAscending(x => x.RegistrationDateTime)
                   .ToList();;

    return View(cards);
}

我应该在视图中做些什么?如何显示我的结果?应如何定义endDate和startDate我没有在任何地方定义它们。我希望enddate和startdate是用户将在搜索框中插入的值。

请帮助。 谢谢

1 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

// Declare a model class in your models folder, like below
// You could give any name you want to this class
public class ModelName
{
    public int CardId { get; set; }
    public string Description { get; set; }
    public DateTime RegistrationDateTime { get; set; }
}

然后在您的控制器中,您可以将您的方法重构为以下方法:

public ActionResult List (DateTime startDate, DateTime endDate)
{
    using(var db = new CardDBEntities())
    {
        var cards = (from c in db.Cards
                     join d in db.RegistrationDTs 
                     on c.CardId equals d.CardId
                     where d.RegistrationDateTime >= startDate && 
                           d.RegistrationDateTime <= endDate
                    select new ModelName
                    {
                        CardId = d.CardId,
                        Description = c.Description,
                        RegistrationDateTime = d.RegistrationDateTime
                    }).OrderByAscending(x => x.RegistrationDateTime)
                      .ToList();

        ViewData["cards"] = cards;

        return View();  
    }
}
  

如何定义endDate和startDate我没有定义它们   任何地方。

您可以在ActionResult方法中将它们定义为参数。

  

我应该在视图中做些什么?

您可以阅读ViewBag集合中的数据。

  

我应该在视图中做些什么?

这完全取决于你如何呈现你的结果。