@Html.RadioButtonFor для обратной передачи

#asp.net-mvc-3

#asp.net-mvc-3

Вопрос:

Я хочу обновить другие элементы управления в форме, как только выберу переключатель.

Как мне заставить эти элементы управления вызывать контроллер, как только будет нажат переключатель. Отдельная кнопка отправки (ActionLink) не подходит.

Мой код

 <label for="ApplicationTypes_Single">On your own?</label>
@Html.RadioButtonFor(x => x.ApplicationType, "Single", new { id = "ApplicationTypes_Single" })

<label for="ApplicationTypes_Joint">With someone else?</label>
@Html.RadioButtonFor(x => x.ApplicationType, "Joint", new { id="ApplicationTypes_Joint" })
  

элемент управления, зависящий от этого выбора, является

 @if(Model.ApplicationType == AffordabilityPage1.ApplicationTypes.Joint)
{
    @Html.LabelFor(model => model.SecondAge)
    @Html.EditorFor(model => model.SecondAge)
}
  

Большое спасибо за любые предоставленные советы.

Ответ №1:

Для достижения этого вам нужен javascript. Например, если вы используете jquery, вы могли бы подписаться на событие изменения этих переключателей и предпринять некоторые действия:

 $(function() {
    $(':radio[id^="ApplicationTypes"]').change(function() {
        var value = $(this).val(); // will equal Single or Joint
        // Depending on what you are trying to achieve either send an AJAX request
        // or force the submission of some form in order to send the new value to the server
    });
});
  

Комментарии:

1. Я попробовал это, и, конечно же, это работает, мне еще многому предстоит научиться, например, как это закончить, но это отличное начало. Я уверен, что смогу найти пример того, как это сделать. Просто знать, что это правильный путь, — это прогресс. Большое спасибо.