このテキストボックスを含むMVCビューページが読み込まれると、デフォルトで現在の日付と時刻を表示したいと思います。これどうやってするの?かみそりで。
@Html.EditorFor(model => model.ReturnDate)
コントローラーからモデルを返す前に、ReturnDate
プロパティをDateTime.Now()
に設定します
myModel.ReturnDate = DateTime.Now()
return View(myModel)
ビューは、プロパティに値を設定するのに適切な場所ではないため、これにはコントローラーが適しています。
ReturnDate
のゲッターが現在の日付/時刻を返すようにすることもできます。
private DateTime _returnDate = DateTime.MinValue;
public DateTime ReturnDate{
get{
return (_returnDate == DateTime.MinValue)? DateTime.Now() : _returnDate;
}
set{_returnDate = value;}
}
モデルなしでビューに日付時刻を表示する場合は、次のように記述します。
Date : @DateTime.Now
出力は次のようになります。
Date : 16-Aug-17 2:32:10 PM
ビューに送信する前に、モデルのReturnDateを初期化できます。
コントローラー内:
[HttpGet]
public ActionResult SomeAction()
{
var viewModel = new MyActionViewModel
{
ReturnDate = System.DateTime.Now
};
return View(viewModel);
}
これはデフォルトのコンストラクタの目的ではありませんか?
class MyModel
{
public MyModel()
{
this.ReturnDate = DateTime.Now;
}
public date ReturnDate {get; set;};
}