Adakah yang tahu cara mengikat tombol radio Ya / Tidak ke properti boolean dari Model yang diketik dengan kuat di ASP.NET MVC.
Model
public class MyClass
{
public bool Blah { get; set; }
}
Melihat
<%@ Page Title="blah" Inherits="MyClass"%>
<dd>
<%= Html.RadioButton("blah", Model.blah) %> Yes
<%= Html.RadioButton("blah", Model.blah) %> No
</dd>
Terima kasih
LARUTAN:
Terima kasih untuk Brian untuk arahannya, tapi itu kebalikan dari apa yang ditulisnya. Seperti itu -
<%@ Page Title="blah" Inherits="MyClass"%>
<dd>
<%= Html.RadioButton("blah", !Model.blah) %> Yes
<%= Html.RadioButton("blah", Model.blah) %> No
</dd>
c#
asp.net-mvc
model
radio-button
boolean
brianstewey
sumber
sumber
Jawaban:
Parameter kedua dipilih, jadi gunakan! untuk memilih nilai tidak ketika boolean salah.
sumber
Jika Anda menggunakan MVC 3 dan Razor, Anda juga dapat menggunakan yang berikut ini:
sumber
Berikut adalah contoh yang lebih lengkap menggunakan
fieldset
alasan aksesibilitas dan menetapkan tombol pertama sebagai default. Tanpa sebuahfieldset
, untuk apa tombol radio secara keseluruhan tidak dapat ditentukan secara pemrograman.Model
Melihat
Anda dapat menambahkan
@checked
argumen ke objek anonim untuk mengatur tombol radio sebagai default:Perhatikan bahwa Anda dapat mengikat string dengan mengganti
true
danfalse
dengan nilai-nilai string.sumber
Membangun sedikit dari jawaban Ben, saya menambahkan atribut untuk ID sehingga saya bisa menggunakan label.
Saya harap ini membantu.
sumber
Menambahkan tag label di sekitar tombol radio menggunakan HTML biasa akan memperbaiki masalah 'labelfor':
Mengklik pada teks sekarang memilih tombol radio yang sesuai.
sumber
atau MVC 2.0:
sumber
Jika saya bisa melemparkan topi saya ke atas ring, saya pikir ada cara yang lebih bersih daripada jawaban yang ada untuk menggunakan kembali fungsi tombol radio.
Katakanlah Anda memiliki properti berikut di ViewModel Anda :
Anda dapat mengekspos properti itu melalui templat editor yang dapat digunakan kembali :
Pertama, buat file
Views/Shared/EditorTemplates/YesNoRadio.vbhtml
Kemudian tambahkan kode berikut ke YesNoRadio.vbhtml :
Anda dapat menghubungi editor untuk properti dengan menentukan secara manual nama templat di Tampilan Anda :
Pro:
sumber
Saya akhirnya mengemas ini menjadi metode ekstensi sehingga (1) saya bisa membuat label dan radio sekaligus dan (2) jadi saya tidak perlu repot menentukan ID saya sendiri:
Pemakaian:
sumber