2

私はFollowsのモデルを持っており、LinqtoSQLを使用しています

public class CustomerDetails
    {
        public Customer customer { get; set; }

    }

「顧客」は、データベースの1人の顧客から入力されます。顧客には「NextEmailDate」フィールドがあります。これをtextBoxにバインドしたいのですが、日付のみを表示し、時刻は表示しません

@Html.TextBoxFor(m=> m.Customer.NextEmailDate)

しかし、テキストが16/09/2012 00:00:00のテキストボックスが表示されます。これを16/09/2012にするにはどうすればよいですか?

4

7 に答える 7

8

が実際のエンティティであると想定Customerして、ビューモデルを導入し、代わりにそれをビューに渡します。そうすれば、必要なすべてのフォーマット/検証属性で装飾できます。

public class CustomerViewModel
{
    [Required(ErrorMessage = "Next email date is required!")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}"]
    public DateTime NextEmailDate { get; set; }
    ...
}

public class CustomerDetails
{
    public CustomerViewModel Customer { get; set; }
}

プロパティを手動でマップするか、AutoMapperなどのライブラリを使用できます。

于 2012-09-27T14:55:29.017 に答える
2

の場合NextEmailDateは、DateTimeを使用できますNextEmailDate.ToShortDateString()。そうでない場合はDateTime、それが何であるかを教えてください。

于 2012-09-27T14:39:33.563 に答える
2

NextEmailDateこの注釈をプロパティに追加します。

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] 
于 2012-09-27T14:39:43.830 に答える
2
<%= Html.TextBoxFor(m => m.Customer.NextEmailDate, new { @Value = m.Customer.NextEmailDate.ToString("dd/MM/yyyy") })%>
于 2012-09-27T14:40:39.893 に答える
1

mvc 3がタグ付けされていることは知っていますが、mvc4にはHtml.TextBox用の追加パラメーター「format」があります

于 2012-09-27T16:32:34.543 に答える
0
@Html.TextBoxFor(m=> m.Customer.NextEmailDate.ToString("dd/MM/yyyy"))
于 2012-09-27T14:39:26.187 に答える
0
@Html.TextBoxFor(p => p.DataFim,"{0:d}", new { @class = " datepicker form-control" })
于 2015-06-22T13:14:37.163 に答える