0

我的数据库中有日期字段,我想做的是找到当前日期和产品创建日期(在数据库中)之间的日期差异。例如,如果产品日期是 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();

});

但我正在努力计算差异

4

2 回答 2

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") %>
<% } %>
于 2011-07-15T16:53:25.860 回答
1

使用 C# 计算天数差异

在视图中您可以使用

<% if(Model.XXX > 5) { %>

   <!-- display --> 
   <p>
     <%= Html.ActionLink("Pay by Cheque", "PayByChecque", "Booking", null, new { id = "paycheque", @class ="test"  })%>
   </p>

<% } %>

模型在 View-Source 的第一行中定义。在您的模型中,您定义了一个包含差异的字段。

不要让 View 计算它。

于 2011-07-15T16:37:00.737 回答