まず、直接value
属性を設定しないでください。剃刀はこれを無視します。バインドされたフィールドの値は、Request
,ViewBag/ViewData
、およびModel
の値で構成されているModelState
の順になります。
model.StartDate = DateTime.Today;
または、より良い、あなたがプロパティを変更することができます:あなたはビューを返す前に、したがって、たとえば、あなたがしたい場合StartDate
は「今日は」、そして、あなたは、単にアクションでそれを使用してモデルを移入うをデフォルトにお使いのモデルクラスに自動的に今日をデフォルトとします
private DateTime? startDate;
public DateTime StartDate
{
get { return startDate ?? DateTime.Today; }
set { startDate = value; }
}
はちょうどあなたのアクションがstartDate
ようPARAMを取ることが起こるか、ViewBag.StartDate
のようなものを設定している場合、それらの値が常に優先されますことを心に留めて。
第2に、HTML5 date
入力タイプを使用しています。 HTML5入力タイプをサポートするブラウザでは、日付時刻、日付または時刻の指定値はで、はISO形式である必要があります。日付の場合、それはYYYY-MM-DD
を意味します。そのような値が指定されていない場合、ブラウザはその値をガベージと見なして破棄し、値が指定されていないかのように制御します。
また、FWIWでは、匿名オブジェクトのすべてのメンバーに接頭辞として@
を付ける必要はありません。それは技術的に何かを傷つけるわけではありませんが、コードのにおいです。接頭語@
は、言語キーワードをエスケープするために存在します。たとえば、class
では、それはキーワードなので直接使用できないため、代わりに@class
を使用する必要があります。ただし、placeholder
とtype
のようなものはではなく、のキーワードであるため、接頭辞は@
である必要はありません。
StartDateは常に日付タイプのデータを持っています。 "mm/dd/yyyy;ではなく、日付の値を表示するにはどのように達成できますか? – Jen143