2017-02-13 28 views
1

.NET Core MVCコントローラでDateTimeパラメータを使用してどのように作業したかを共有したいと考えました。私はこれを使用して私のソリューションに日付範囲フィルター機能を作成しました。ASP.Net Core MVC DateTimeパラメータ

誤った

[HttpGet, Route("dateRange/{start}/{end}")] 
public IActionResult Get(DateTime start, DateTime end) 
{ 
    //invalid values (e.g. /bogus/52) get converted to a valid DateTime value of 1/1/0001 00:00:00.001 
    if (start != DateTime.MinValue && end != DateTime.MinValue) 
    {    
     if (start < end) 
     { 
      return Json(_Repo.GetByDateRange(start, end)); 
     } 
    } 
    return BadRequest("Invalid Date Range"); 
} 

答えて

2

良い方法:ルート注釈の日時制約:

[HttpGet, Route("dateRange/{start:datetime}/{end:datetime}")] 
public IActionResult Get(DateTime start, DateTime end) 
{    
    if (start < end) 
    { 
     return Json(_Repo.GetByDateRange(start, end)); 
    } 
    return BadRequest("Invalid Date Range"); 
} 

キーです。これは.NETにDateTimeを強制し、無効なパラメータ値に対して404 Responseを自動的に返すように指示します。これは入力を検査し、コード内の悪い応答を処理するよりもはるかにクリーンです。

関連する問題