2012-01-30 3 views
1

У меня есть проблема, что начинает сводить меня с ума .. Я сузили свою проблему до следующего теста:MVC3 радиокнопки не ведут себя, как они должны

Модель:

public class TestModel 
{ 
    public bool TestBool { get; set; } 
} 

Index Вид:

@{ 
ViewBag.Title = "Index"; 
} 
<h2>Index</h2> 
@Html.Action("Test") 

Test Вид:

@model IEnumerable<Test_GUI.Models.TestModel> 
@using (Html.BeginForm()) { 
<table> 
    @Html.EditorForModel() 
</table> 
<input type="submit" value="OK"/> 
} 

Редактор шаблон;

<tr> 
<td> 
    Yes 
    @Html.RadioButtonFor(m => m.TestBool, Model.TestBool) 
</td> 
<td> 
    No 
    @Html.RadioButtonFor(m => m.TestBool, !Model.TestBool) 
</td> 

В TestController, я создаю два экземпляра TestModel со значением ложной и передать их в представление. Но радиообъекты отображаются как проверенные, и они также возвращаются как истинные, если я отправляю форму. Я пробовал много других способов отображения радиолюбителей, но ничего не работает. Это похоже на то, чтобы исправить это. Я должен иметь возможность использовать текущее значение логического значения, поэтому я не могу использовать фиксированные истинные или ложные значения в представлении. Если я использовать фиксированный истина/ложь, я получаю правильные значения по форме, так и в контроллере после размещения формы ..

ответ

1

Попробуйте так:

<td> 
    Yes 
    @Html.RadioButtonFor(m => m.TestBool, true) 
</td> 
<td> 
    No 
    @Html.RadioButtonFor(m => m.TestBool, false) 
</td> 
+0

Спасибо, но, как я говорю, в последней части моего сообщения, это действительно работает, но мне нужно иметь возможность использовать текущее значение. (в реальном сценарии я показываю datagrid, который можно редактировать и сохранять) – Hanno

+0

@ Ханно, какое текущее значение? Просто установите свойство TestBool в действие вашего контроллера, и правильный переключатель будет проверяться автоматически. –

+0

Не могли бы вы объяснить, как достичь этого? Потому что мне нужно передать некоторое значение в качестве второго параметра, но как передать текущее значение таким образом, который работает? – Hanno

Смежные вопросы