【问题标题】:ASP.NET MVC C# dynamic radiobuttons getting formcollectionASP.NET MVC C# 动态单选按钮获取表单集合
【发布时间】:2010-12-10 14:26:28
【问题描述】:

我有一个表单,其中可以在视图中动态生成多个单选按钮,在提交的表单上,我如何收集控制器中的值。例如,有像 Gender (Male and Female)、Education (BS,MS,BCS) 这样动态生成的单选按钮。我怎样才能在容器中获得价值。

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    如果您知道单选按钮的名称,则可以使用操作参数。如果名称是任意的,您可以从传递给您的 POST 操作的 FormCollection 参数中获取值(它是一个 NameValueCollection,因此您可以遍历键并获取相应的值)。

    我个人建议您使用确定性名称:

    Gender:
    <input type="radio" value="M" name="radios[0]" />
    <input type="radio" value="F" name="radios[0]" />
    
    Education:
    <input type="radio" value="BS" name="radios[1]" />
    <input type="radio" value="MS" name="radios[1]" />
    <input type="radio" value="BCS" name="radios[1]" />
    

    在你的控制器动作中你可以使用一个集合:

    [HttpPost]
    public ActionResult Update(string[] radios)
    {
        // The radios collection will contain the selected values like:
        // radios[0] = "F"
        // radios[1] = "MS"
        ...
    }
    

    【讨论】:

      【解决方案2】:

      如果表单集合是动态生成的单选按钮,唯一的方法就是使用它们。

      public ActionResult controllername(FormCollection form)
      {
           foreach(string radioName in dynamicRadioList)
           {
                 var value = form[radioName];
                 //blah blah
           }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多