Saya mengalami masalah saat menampilkan satu-satunya bagian tanggal dari DateTime ke dalam kotak teks menggunakan TextBoxFor <,> (ekspresi, htmlAttributes).
Model ini didasarkan pada Linq2SQL, bidang adalah DateTime pada SQL dan dalam model Entity.
Gagal:
<%= Html.TextBoxFor(model => model.dtArrivalDate, String.Format("{0:dd/MM/yyyy}", Model.dtArrivalDate))%>
Trik ini tampaknya didepresiasi, nilai string apa pun di objek htmlAttribute diabaikan.
Gagal:
[DisplayFormat( DataFormatString = "{0:dd/MM/yyyy}" )]
public string dtArrivalDate { get; set; }
Saya ingin menyimpan dan hanya menampilkan bagian tanggal pada tampilan detail / edit, tanpa bagian "00:00:00".
asp.net-mvc
Kronos
sumber
sumber
@Html.EditorFor(m => m.IssueDate)
dan format pada model diterapkan[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}" )]
tetapi tanggal masih ditampilkan sebagai01/01/0001 12:00:00 AM
MVC4 telah memecahkan masalah ini dengan menambahkan
TextBoxFor
kelebihan baru , yang mengambil parameter format string. Anda sekarang dapat melakukan ini:Ada juga kelebihan yang membutuhkan atribut html, sehingga Anda dapat mengatur kelas CSS, memasang datepickers, dll:
sumber
@Html.TextBoxFor(m => m.SomeDate, "{0:MM/dd/yyyy}", new { @id="datepicker" })
[DisplayFormat]
atribut model . Senang setidaknya ada timpa di TextBoxFor (dan Anda memberi tahu saya tentang itu).@Html.TextBoxFor(model => model.CDate, "{0:dd.MM.yyyy}")
tetapi pada httpPost saya mendapatkan data seperti MM.dd.yyyy. Bagaimana cara mengatasinya?input[type=date]
spesifikasi memerlukan"{0:yyyy-MM-dd}"
format.sumber
@Value = (Model.DateBecamePermanentResident == null ? "" : Model.DateBecamePermanentResident.Value.ToString("dd.MM.yyyy"))
Atau gunakan pembantu yang tidak diketik:
sumber
@Html.TextBoxFor(model => model.EndDate, "{0:d}", new { type = "date" })
Ini berhasil untuk saya.
sumber
Jangan takut menggunakan HTML mentah.
sumber
TextBoxFor
atauEditorFor
memformat nilai. Lihat pertanyaan saya: Pembantu TextBoxFor mencampur hari dan bulan dalam tanggalTL; DR;
Melamar
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
tidak berhasil bagi saya!Penjelasan:
Untuk menampilkan properti tanggal model Anda menggunakan
Html.TextBoxFor
:Properti tanggal dari kelas model Anda:
Tidak ada hal lain yang diperlukan di sisi model.
Di Razor Anda melakukannya:
Penjelasan:
Tanggal
input
elemen jenis htmldate
harus diformat sehubungan dengan ISO8601 , yaitu:yyyy-MM-dd
Pengalaman saya adalah, bahwa bahasa tidak ditentukan oleh
Accept-Language
header, tetapi oleh bahasa tampilan browser atau bahasa sistem OS.sumber
Anda juga dapat menggunakan atribut HTML 5 dengan menerapkan anotasi data ini:
Tetapi masalahnya adalah ini memungkinkan pemilih tanggal khusus browser untuk browser HTML 5. Anda masih memerlukan pemilih tanggal sendiri untuk peramban tanpa dukungan, dan kemudian Anda harus memastikan pemilih tanggal Anda tidak muncul selain dari peramban (Modernizr dapat melakukan ini dengan mudah), atau menyembunyikan peramban itu jika ada (rumit dan saya tidak tahu bagaimana metode yang andal yang saya lihat).
Pada akhirnya saya pergi dengan Alex karena lingkungan saya saat ini tidak memiliki Modernizr, tetapi jika itu terjadi, saya akan menggunakannya untuk secara kondisional hanya menampilkan pemilih data saya jika browser belum mendukung yang sudah.
sumber
Bagi saya, saya perlu menyimpannya
TextboxFor()
karena menggunakanEditorFor()
mengubah tipe input hingga saat ini. Yang, di Chrome, menambahkan pemilih tanggal bawaan, yang mengacaukan datepicker jQuery yang sudah saya gunakan. Jadi, untuk terus menggunakanTextboxFor()
DAN hanya menampilkan tanggal, Anda dapat melakukan ini:sumber
Atribut DisplayFormat tidak berfungsi untuk saya dalam bentuk apa pun setelah memuat awal. Saya malah membuat EditorTemplate:
sumber
Editor Template hanya akan berfungsi untuk tujuan tampilan. Jika Anda menggunakan editor yang sama (yang masuk akal karena merupakan editor) dan Anda memberikan nilai seperti 31/01/2010 - Anda akan mendapatkan pesan kesalahan yang mengatakan bahwa formatnya tidak valid.
sumber
Saya menggunakan Globalize sehingga berfungsi dengan banyak format tanggal jadi gunakan yang berikut ini:
Ini akan secara otomatis menyesuaikan format tanggal ke pengaturan lokal browser.
sumber
Perlu diingat bahwa tampilan akan tergantung pada budaya. Dan sementara dalam kebanyakan kasus semua jawaban lain benar, itu tidak berhasil untuk saya. Masalah budaya juga akan menyebabkan masalah yang berbeda dengan datepicker jQuery, jika terpasang.
Jika Anda ingin memaksa pelarian format
/
dengan cara berikut:Jika tidak lolos untuk saya, itu menunjukkan
08-01-2010
vs. diharapkan08/01/2010
.Juga jika tidak melarikan diri datepicker jQuery akan memilih defaultDate yang berbeda, dalam contoh saya itu
May 10, 2012
.sumber
Jika Anda menggunakan pemilih tanggal Bootstrap, maka Anda bisa menambahkan atribut data_date_format seperti di bawah ini.
sumber
// tampilan datimetime di datePicker adalah 11/24/2011 12:00:00 AM
// Anda dapat membaginya dengan ruang dan menetapkan nilai hanya tanggal
Naskah:
Markup:
Semoga ini bisa membantu ..
sumber
Tentu Anda bisa menggunakan Html.EditorFor. Tetapi jika Anda ingin menggunakan TextBoxFor dan menggunakan format dari atribut DisplayFormat Anda dapat menggunakannya dengan cara ini:
atau buat ekstensi berikutnya:
sumber
Cukup tambahkan di sebelah model Anda.
sumber
Saat menggunakan tag helper di ASP.NET Core, format perlu ditentukan dalam format ISO. Jika tidak ditentukan, data input terikat tidak akan ditampilkan dengan benar dan akan ditampilkan sebagai mm / hh / tttt tanpa nilai.
Model:
Melihat:
Format juga dapat ditentukan dalam tampilan menggunakan atribut asp-format.
HTML yang dihasilkan akan terlihat sebagai berikut:
sumber
Anda dapat menggunakan kode di bawah ini untuk mencetak waktu dalam format HH: mm , Dalam kasus saya Jenis properti adalah TimeSpan Jadi nilainya datang dalam format HH: mm: tt tetapi saya harus menunjukkan dalam format di atas yaitu. HH: mm
sumber
Jika Anda bersikeras menggunakan
[DisplayFormat]
, tetapi Anda tidak menggunakan MVC4, Anda dapat menggunakan ini:sumber