Saya menggunakan atribut DataType.Date pada model saya dan EditorFor dalam pandangan saya. Ini berfungsi dengan baik di Internet Explorer 8 dan Internet Explorer 9 , tetapi di Google Chrome ini menunjukkan pemilih tanggal dan bukannya menampilkan nilai itu hanya menampilkan "Bulan / Hari / Tahun" dalam teks abu-abu pudar.
Mengapa Google Chrome tidak menampilkan nilai?
Model:
[DataType(DataType.Date)]
public Nullable<System.DateTime> EstPurchaseDate { get; set; }
Melihat:
<td class="fieldLabel">Est. Pur. Date</td>
<td class="field">@Html.EditorFor(m=>m.EstPurchaseDate)</td>
sumber
[DataType(DataType.Date)]
jadi saya tidak perlu menandai semua properti ini secara terpisah dengan risiko kehilangan sebagian?Di MVC5.2, tambahkan Date.cshtml ke folder ~ / Views / Shared / EditorTemplates:
sumber
Sebagai tambahan untuk jawaban Darin Dimitrov:
Jika Anda hanya ingin baris khusus ini menggunakan format tertentu (berbeda dari standar), Anda dapat menggunakan di MVC5:
sumber
@
di awal,@Value = @Model.Property...
masih perlu itu@
? Apakah maksud Anda adilnew { Value = Model.Property...
?Di MVC 3 saya harus menambahkan:
di antara usings saat menambahkan properti:
Terutama jika Anda menambahkan properti ini dalam file .edmx seperti saya. Saya menemukan bahwa secara default .edmx file tidak menggunakan ini sehingga menambahkan propeties saja tidak cukup.
sumber
Jika Anda menghapus
[DataType(DataType.Date)]
dari model Anda, bidang input di Chrome ditampilkan sebagaitype="datetime"
dan tidak akan menampilkan datepicker juga.sumber
date
. Menggunakandatetime
sebagai solusi tidak tepat, karena tidak secara semantik mewakili data.Saya masih memiliki masalah dengan itu meneruskan format yyyy-MM-dd, tapi saya mengatasinya dengan mengubah Date.cshtml:
sumber
string.Format("{0}/{1}/{2}")
untuk mendapatkandd/mm/yyyy
format, dan berfungsi dengan baik, saya menggunakan metode database pertama tetapi DisplayFormat tidak bekerja dengan kelas parsial, tidak tahu mengapa ?, lagi pula siapa pun jika perlu mencoba metode ini , saya tidak t coba tetapi jika ada yang membutuhkan, harap ini membantuMembalas MVT4 DataType.Date EditorFor tidak akan menampilkan nilai tanggal di Chrome, baik di IE
Dalam Model, Anda harus memiliki jenis deklarasi berikut:
ATAU
Anda tidak perlu menggunakan atribut berikut:
Di Date.cshtml gunakan templat ini:
Selamat bersenang-senang! Salam, Blerton
sumber
DisplayFormat
atribut 2) Ubah tes untuk memeriksa apakah jenis browser krom, lalu lakukan@Html.EditorFor(m=>m.EstPurchaseDate)
3) Lain@Html.TextBox("EstPurchaseDate", dt.ToString("MM/dd/yyyy"))
Catatan: pada # 2, pemeriksaan yang lebih baik adalah jika browser mengerti HTML5, tapi saya tidak tahu bagaimana melakukannya.Jika Anda perlu memiliki kontrol atas format tanggal (dengan kata lain bukan hanya format tttt-tttt-tt dapat diterima), solusi lain dapat menambahkan properti pembantu yang bertipe string dan menambahkan validator tanggal ke properti itu , dan ikat ke properti ini di UI.
Dan ini adalah validator tanggal:
sumber