2011-07-15 22 views
0

我在我的db中獲得了日期字段,我想要做的是找到當前日期和產品日期之間的日期差異創建(這是在DB)。例如,如果產品日期爲2012年8月22日且當前日期爲15/07/2011,則因此差異爲38天,在計算差異後,應該根據它檢查邏輯並顯示動作鏈接,如何計算mvc中的日期差異並根據差異隱藏/顯示Html.Actionlink

該邏輯是固定的,簡單:在視圖

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

任何幫助或建議

If(dateDifference > 5) 
{ show Actionfilter } 
else 
{ 
hide Actionfilter} 

動作過濾器將被理解的。

我想在控制器操作的方式計算的,並通過視圖袋傳遞到像jquery的:

$('#paycheque').hide(); 
$('Viewbag.difference').value > 5{ 

$("#showdiv").show(); 
else 
$("#showdiv").hide(); 

});

但我與計算差值

回答

3

您的觀點不應該爲計算負責。

一般控制器將加載來自數據庫的模型,並使用該模型來填充適當的視圖模型對象(如上述),其負責「成型」中的數據轉換爲您的視圖需要它的格式。

嘗試一些大致如下的行: -

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") %> 
<% } %> 
+0

+1 tho燃燒的問題,是她進入他:)。我們需要第二部分 –

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> 

<% } %> 

模型在查看源代碼的第一行定義。在你的模型中,你定義了一個字段,它保存了不同。

不要讓視圖計算它。

+0

但是這種差別會在每一個下午發生變化,db如何自動執行此操作 –

+0

應該在視圖和數據庫之間存在一些代碼/業務邏輯。讓代碼/業務邏輯計算差異。 –

+0

@Paolo Moretti感謝編輯我的文章,並使格式正確:) –