2016-04-06 17 views
1

開始日と終了日を指定してリストをフィルタリングしようとしていますが、入力した情報に応じて適切な行が表示されることがあります。以下は私の質問ですが、誰かが論理の問題を見ていますか?日付と時間でフィルタリストを表示MVC/C#

あなたは次のように修正する必要があり
public List<MyTicket> FilteredTickets => Tickets.Where(x => 
     (string.IsNullOrEmpty(TicketType) || x.RequestTypeId == TicketType) && 
     (StartDate == null || x.DateLogged >= StartDate) && (EndDate == null || x.DateLogged <= EndDate)).ToList(); 
+0

StartDateとEndDateには時間と分が含まれていますか? Yo9uはStartDate.DateとEndDate.Dateを使用して時間と分を削除することができます。 – jdweng

+0

これはドロップダウンリストなので、ユーザーは空白(null)にしておくことで、エラーではないようにする必要がありますが、ポストではなくgetメソッドを呼び出すための問題です。それは日時フォーマットと混同されていました。私は、この問題を解決するために、グローバルな設定と文化の設定に関する答えを見つけました。 –

答えて

0

これはドロップダウンリストなので、ユーザーが空白(null)にしてエラーにならないようにする必要がありますが、ポストの代わりにgetメソッドを呼び出すので問題が発生していたようです日付と時刻の形式と混同してしまいます。私は、この問題を解決するために、グローバルな設定と文化の設定に関する答えを見つけました。 MVC DateTime binding with incorrect date format

0

public List<MyTicket> FilteredTickets = 
     Tickets.Where(x => 
     (!string.IsNullOrEmpty(TicketType) && x.RequestTypeId == TicketType) && 
     (StartDate != null && x.DateLogged >= StartDate) && 
     (EndDate != null && x.DateLogged <= EndDate)).ToList(); 
0

あなたStartDateEndDate値がnullと大きいnullまたはそれ以上の代わりではない場合は、現在チェックしている:だから

public List<MyTicket> FilteredTickets => Tickets.Where(x => 
    (string.IsNullOrEmpty(TicketType) || x.RequestTypeId == TicketType) && 
    (StartDate != null && x.DateLogged >= StartDate) && 
    (EndDate != null && x.DateLogged <= EndDate)) 
    .ToList(); 

以前の式が評価されるとすぐに、これらの日付フィールドの1つがNULLであり、セクション全体をとして評価します、これをフィルタリングするのではなく結果を表示する。

関連する問題