2016-09-08 7 views
0

に日付型の形式で日付値を編集する私はこれらのコードを持っているが、その後、編集ボックスの値の表示は「YYYY/MM/DD」です enter image description hereどのようにブートストラップ

@Html.TextBoxFor(m => m.StartDate, new { @Value = Model.StartDate.ToString("MM/dd/yyyy"), @placeholder= Model.StartDate.ToString("MM/dd/yyyy"), @class = "form-control", @type="date" }) 

どのように私はのような何かを達成することができます表示された日付がデータベースではなく、「YYYY/MM/DD」から値であり、この

enter image description here

答えて

0

まず、直接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を使用する必要があります。ただし、placeholdertypeのようなものはではなく、のキーワードであるため、接頭辞は@である必要はありません。

+0

StartDateは常に日付タイプのデータを持っています。 "mm/dd/yyyy;ではなく、日付の値を表示するにはどのように達成できますか? – Jen143

関連する問題