Использование MVC Html.RadioButton в представлениях - PullRequest
0 голосов
/ 20 апреля 2009

У меня есть несколько динамически создаваемых полей в представлениях. Скажем

Car Payment [1] [2] [3]
House Payment [1] [2] [3]
CC Payment [1] [2] [3]

В моем контроллере я хочу увидеть, какие значения выбрал пользователь для каждого из них, но я обнаружил, что с помощью FormCollection я получаю только «Оплата автомобиля», «Оплата дома» и «Оплата CC». Я не верну фактические значения, связанные с этими выборами радиокнопок, если я не определю эти входные данные явно как переменную контроллера. К сожалению, эти переключатели генерируются динамически, включая их имена, так что это не вариант. Есть идеи с точки зрения решения этой проблемы?

Ответы [ 2 ]

1 голос
/ 20 апреля 2009

Я думаю, что вы действительно должны использовать ValueProvider на контроллере, а не ссылаться на параметры в самом запросе. Использование поставщика значений значительно упростит модульное тестирование, поскольку вам не нужно будет макетировать запрос, просто предоставьте реализацию ValueProvider для контроллера.

  ...
  var provider = new FormCollection();
  provider["CarPayment"] = "1";

  var controller = new PaymentController();
  controller.ValueProvider = provider.ToValueProvider();

  var result = controller.Create();
  ...


  public ActionResult Create()
  {
      int carPaymentType = (int)this.ValueProvider["CarPayment"].ConvertTo(typeof(int));
      ...
  }

Очевидно, что вам нужно будет добавить проверку ошибок и т. Д. Вы также можете перебирать ключи в ValueProvider так же, как в Request.Form.

0 голосов
/ 20 апреля 2009

Хорошо, я понял, как это сделать в контроллере, думал, что поделюсь.

Запрос ["CarPayment"] сможет динамически извлекать значения из коллекции RadioButton в моем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...