Bagaimana cara mendapatkan kumpulan kesalahan dalam tampilan?
Saya tidak ingin menggunakan Ringkasan Validasi Html atau Pesan Validasi. Sebaliknya saya ingin memeriksa kesalahan dan apakah ada yang menampilkannya dalam format tertentu. Juga pada kontrol input saya ingin memeriksa kesalahan properti tertentu dan menambahkan kelas ke input.
PS Saya menggunakan Spark View Engine tetapi idenya harus sama.
Jadi saya pikir saya bisa melakukan sesuatu seperti ...
<if condition="${ModelState.Errors.Count > 0}">
DispalyErrorSummary()
</if>
....and also...
<input type="text" value="${Model.Name}"
class="?{ModelState.Errors["Name"] != string.empty} error" />
....
Atau semacam itu.
MEMPERBARUI
Solusi terakhir saya terlihat seperti ini:
<input type="text" value="${ViewData.Model.Name}"
class="text error?{!ViewData.ModelState.IsValid &&
ViewData.ModelState["Name"].Errors.Count() > 0}"
id="Name" name="Name" />
Ini hanya menambah kelas kesalahan css jika properti ini memiliki kesalahan.
html
asp.net-mvc
validation
spark-view-engine
Ryan Montgomery
sumber
sumber
Jawaban:
atau
dan untuk properti tertentu ...
sumber
Untuk mendapatkan kesalahan dari ModelState, gunakan Linq ini:
sumber
Versi ringkas jawaban @ ChrisMcKenzie :
sumber
Ini akan memberi Anda satu string dengan semua kesalahan dengan memisahkan koma
sumber
Chad terima kasih! Untuk menunjukkan semua kesalahan yang terkait dengan kunci, inilah yang saya temukan. Untuk beberapa alasan, pembantu Html.ValidationMessage dasar hanya menampilkan kesalahan pertama yang terkait dengan kunci.
HtmlHelper:
sumber
Mengumpulkan beberapa jawaban dari atas, inilah yang akhirnya saya gunakan:
validationErrors
akhirnya menjadiList<string>
yang berisi setiap pesan kesalahan. Dari sana, mudah untuk melakukan apa yang Anda inginkan dengan daftar itu.sumber
Inilah VB.
sumber
Jika Anda tidak tahu properti apa yang menyebabkan kesalahan, Anda bisa, menggunakan refleksi, mengulang semua properti:
Di mana T adalah tipe "ViewModel" Anda.
sumber