У меня есть проблема, что начинает сводить меня с ума .. Я сузили свою проблему до следующего теста: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 со значением ложной и передать их в представление. Но радиообъекты отображаются как проверенные, и они также возвращаются как истинные, если я отправляю форму. Я пробовал много других способов отображения радиолюбителей, но ничего не работает. Это похоже на то, чтобы исправить это. Я должен иметь возможность использовать текущее значение логического значения, поэтому я не могу использовать фиксированные истинные или ложные значения в представлении. Если я использовать фиксированный истина/ложь, я получаю правильные значения по форме, так и в контроллере после размещения формы ..
Спасибо, но, как я говорю, в последней части моего сообщения, это действительно работает, но мне нужно иметь возможность использовать текущее значение. (в реальном сценарии я показываю datagrid, который можно редактировать и сохранять) – Hanno
@ Ханно, какое текущее значение? Просто установите свойство TestBool в действие вашего контроллера, и правильный переключатель будет проверяться автоматически. –
Не могли бы вы объяснить, как достичь этого? Потому что мне нужно передать некоторое значение в качестве второго параметра, но как передать текущее значение таким образом, который работает? – Hanno