在视图中使用MVC Html.RadioButton

时间:2009-04-20 17:15:43

标签: asp.net-mvc

我在视图上有许多动态创建的字段。让我们说

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

在我的控制器中,我想查看用户为每个选择的值,但我发现使用FormCollection我只返回“Car Payment”,“House Payment”和“CC Payment”。除非我明确地将这些输入定义为控制器变量,否则我不会获得与这些radiobutton选择相关的实际值。不幸的是,这些单选按钮是动态生成的,包括它们的名称,所以这不是一个选项。处理这个问题的任何想法?

2 个答案:

答案 0 :(得分:1)

我认为你真的应该在控制器上使用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));
      ...
  }

显然,您需要添加错误检查等。您也可以像在Request.Form上一样遍历ValueProvider上的键。

答案 1 :(得分:0)

好的,我想知道如何在控制器中执行此操作,我想我会分享。

Request [“CarPayment”]将能够在我的示例中从RadioButton集合中动态提取值。