我的数据库中有日期字段,我想要做的是找到当前日期和产品创建日期之间的日期差异(以db为单位)。例如,如果产品日期是22/08/2012且当前日期是15/07/2011,则差异为38天,计算差异后应检查逻辑并根据它显示操作链接,
逻辑简单明了:
If(dateDifference > 5 )
{ show Actionfilter }
else
{
hide Actionfilter}
视图中的动作过滤器
<p> <%= Html.ActionLink("Pay by Cheque", "PayByChecque", "Booking", null, new { id = "paycheque", @class ="test" })%></p>
任何帮助或建议都将不胜感激。
我正在考虑在控制器中进行计算并将其通过视图包传递给jquery,如:
$('#paycheque').hide();
$('Viewbag.difference').value > 5{
$("#showdiv").show();
else
$("#showdiv").hide();
});
但我正在努力计算差异
答案 0 :(得分:3)
您的观点不应该对计算负责。
通常,您的控制器将从数据库加载模型,并使用该模型填充适当的ViewModel对象(如上所述),该对象负责将数据“整形”为您的视图所需的格式。
尝试以下方面的内容: -
MyViewModel.cs: -
public class MyViewModel
{
public DateTime FirstDate { get; set; }
public DateTime SecondDate { get; set; }
public bool SheIsIntoYou
{
return SecondDate.Subtract(FirstDate).Days < 5
}
}
在您的视图中(在MyViewModel上强列入): -
<% if (Model.SheIsIntoYou) { %>
<%: Html.ActionLink("Ask out again", "MyController", "MyAction") %>
<% } %>
答案 1 :(得分:1)
Calculating difference in days using C#
在视图中,您可以使用
<% if(Model.XXX > 5) { %>
<!-- display -->
<p>
<%= Html.ActionLink("Pay by Cheque", "PayByChecque", "Booking", null, new { id = "paycheque", @class ="test" })%>
</p>
<% } %>
模型在View-Source的第一行中定义。在您的模型中,您可以定义一个保持差异的字段。
不要让View计算它。