2012-05-29 47 views
45

Ở chế độ xem một phần Tôi làm việc với hộp văn bản như thế này.Nút radio Dao cạo MVC

@model Dictionary<string, string> 
@Html.TextBox("XYZ", @Model["XYZ"]) 

Làm cách nào để tạo ra các nút vô tuyến và nhận giá trị mong muốn trong bộ sưu tập biểu mẫu là CÓ/NO True/False)? Hiện tại tôi đang nhận được null cho "ABC" nếu tôi chọn bất kỳ giá trị nào cho bên dưới.

<label>@Html.RadioButton("ABC", @Model["ABC"])Yes</label> 
    <label>@Html.RadioButton("ABC", @Model["ABC"])No</label> 

khiển

 public int Create(int Id, Dictionary<string, string> formValues) 
     { 
     //Something Something 
     } 
+0

Hiển thị mã phương pháp hành động của bạn là tốt. –

+2

bản sao có thể có của [ASP.NET MVC Có/Không có nút radio với mô hình mạnh mẽ ràng buộc MVC] (http://stackoverflow.com/questions/2559208/asp-net-mvc-yes-no-radio-buttons-with-strongly -bound-model-mvc) –

Trả lời

57

Để làm điều này cho nhiều mục làm điều gì đó như:

foreach (var item in Model) 
{ 
    @Html.RadioButtonFor(m => m.item, "Yes") @:Yes 
    @Html.RadioButtonFor(m => m.item, "No") @:No 
} 
+1

Tôi gọi tất cả các lượt xem một phần của mình đều đi qua @model Dictionary tôi cần một cách để trả về (True, False) hoặc (Yes, No) cho các giá trị đã chọn trong các nút radio. – Nanu

+1

@KirkWoll mã của anh ta sẽ không ràng buộc với một 'Dictionary ' (như mô hình của anh ta). Dựa trên một Có Không có phản ứng, một bool có lẽ là tốt nhất, một bool Nullable nếu bạn đang cho phép không được chọn mặc dù. – mattytommo

+0

@KirkWoll Kiểm tra bản chỉnh sửa đã cập nhật của tôi, ban đầu tôi nghĩ anh ấy chỉ muốn có tùy chọn Có Không cho một, do đó đề xuất một bool. – mattytommo

13

tôi giải quyết vấn đề tương tự với this SO trả lời.

Về cơ bản, nó liên kết nút radio với thuộc tính boolean của Mô hình được đánh máy mạnh.

@Html.RadioButton("blah", !Model.blah) Yes 
@Html.RadioButton("blah", Model.blah) No 

Hy vọng điều đó sẽ hữu ích!

8
<label>@Html.RadioButton("ABC", "YES")Yes</label> 
<label>@Html.RadioButton("ABC", "NO")No</label> 
22

Đơn giản chỉ cần:

<label>@Html.RadioButton("ABC", True)Yes</label> 
    <label>@Html.RadioButton("ABC", False)No</label> 

Nhưng bạn nên luôn luôn sử dụng mô hình mạnh mẽ gõ theo đề nghị của Cacho.

1

Điều này phù hợp với tôi.

@{ var dic = new Dictionary<string, string>() { { "checked", "" } }; } 
@Html.RadioButtonFor(_ => _.BoolProperty, true, (@Model.BoolProperty)? dic: null) Yes 
@Html.RadioButtonFor(_ => _.BoolProperty, false, ([email protected])? dic: null) No 
11

Tôi làm điều này theo một cách như:

@Html.RadioButtonFor(model => model.Gender, "M", false)@Html.Label("Male") 
    @Html.RadioButtonFor(model => model.Gender, "F", false)@Html.Label("Female") 
1
<p>@Html.RadioButtonFor(x => x.type, "Item1")Item1</p> 
<p>@Html.RadioButtonFor(x => x.type, "Item2")Item2</p> 
<p>@Html.RadioButtonFor(x => x.type, "Item3")Item3</p> 
1
<div class="col-md-10"> 
    Male: @Html.RadioButton("Gender", "Male") 
    Female: @Html.RadioButton("Gender", "Female") 
</div>       
+0

Giải thích giải pháp của bạn. –

Các vấn đề liên quan