我是.NET世界的新手,所以原谅我的新手问题。
我正在构建一个从数据库中获取数据的webapp。我正在使用Entity Framework,数据库第一种方法。我想比较数据库中的日期字段和当前日期。如果剩下20天或更短的天数直到当前日期,我希望它显示在我的视图中。 如果还剩下20天,则不应该在我看来显示。 现在我正在展示一切。
控制器:
[StandardUserAuthorize]
public ActionResult Index()
{
var model = new HomeVM
{
Offerter = db.AH_AVTAL_HUVUD.ToList(),
Kallelser = db.AS_AVTAL_SCHEMA.ToList()
//This is where the datefield is, in Kallelser.
};
return View(model);
}
视图模型:
public class HomeVM
{
public IEnumerable<AH_AVTAL_HUVUD> Offerter { get; set; }
public IEnumerable<AS_AVTAL_SCHEMA> Kallelser { get; set; }
}
查看:
@foreach (var item in Model.Kallelser)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.AS_SC_DAT)
</td>
<td>
@Html.DisplayFor(modelItem => item.AS_SC_VECKA)
</td>
<td>
@Html.DisplayFor(modelItem => item.AS_SC_OP_TXT)
</td>
</tr>
}
我怎么能做这种逻辑?在哪里?我认为它应该在控制器中完成。
最诚挚的问候。
答案 0 :(得分:1)
我希望我完全理解你
//this is the after 20 days
var ComparingDay = DateTime.Now.AddDays(20);
//this linq expression to get days between today and the comparing day
var ListOfNextDays = YouContextClass.YourDBSet.Where(D => D.Date > DateTime.Now && D.Date < ComparingDay).ToList();
现在你有可以传递给你的日子清单
如果您希望其他日子符合您的条件,您可以使用except运算符
答案 1 :(得分:0)
我假设你在应用程序的某个地方写了一个sql。只需在其中添加一个where子句,即可只检索要显示的内容。
SELECT t.*
FROM Table t
WHERE DATEDIFF(DAY, t.Date, GETDATE()) <= 20