繁体   English   中英

MVC 4:FormCollection不返回单选按钮

[英]MVC 4 : FormCollection Doesn't return radio button

我在Razor-View中动态创建控件。 在这里,我根据自己对象中的数据向DOM添加了一些控件。 但是,当我尝试添加单选按钮时,除非值保持不变,否则我不会收到它。 如果我动态添加两个具有不同值的单选按钮,则FormCollection不包含那些控件。

请帮我解决这个问题,因为我无法理解这种行为。 理想情况下,它应该刚刚返回了集合中的两个单选按钮。

foreach (var property in propertiesInner)
{
    if (property.Name == "OptionQuestion")
    {
        if (@item.ObjQuestions.QuestionType == 4)
        {
            <td>
                <table>                
                    <tr>
                        <td>
                            @Html.RadioButton("RadTF", UniqueValue
                            , false, new { id = "RadTF",  @style = "width:auto;background:none;border:none" })
                            @property.GetValue(itemInner, null)
                        </td>
                    </tr>
                </table>
            </td>
        }
        else if (@item.ObjQuestions.QuestionType == 1) 
        { 
            <td>
                <table>
                    <tr>
                        <td>
                            @Html.CheckBox("Chk"+@item.QuestionCode.ToString()+UniqueValue
                            , false, new { id = "Chk"+@item.QuestionCode.ToString()+UniqueValue
                                , @style = "width:auto;background:none;border:none" })
                            @property.GetValue(itemInner, null)
                        </td>
                    </tr>
                </table>
            </td>
        }
    }

}

编辑1: UniqueValue是我的forloop变量。 为了给每个按钮一个唯一的值,我还尝试将这个唯一的变量连接到我的id上,如下所示:

@Html.RadioButton("RadTF"+UniqueValue, UniqueValue
, false, new { id = "RadTF"+UniqueValue
,  @style = "width:auto;background:none;border:none" })

值是常量意味着,如果我生成具有相同值的单选按钮,则会在发布的集合中看到它们(或其中之一)。

对于单选按钮组,必须确保每个单选按钮:

  • 具有唯一的id
  • 具有相同的name

name属性是将不同的单选按钮组合在一起的属性。 您正在使用此重载:

public IHtmlString RadioButton(
    string name,
    Object value,
    bool isChecked,
    Object htmlAttributes
)

您可以尝试创建单选按钮吗?

@Html.RadioButton("RadTF", UniqueProperty, false, new { id = "RadTF"+UniqueValue,  style = "width:auto;background:none;border:none" })

如果仍有问题,请发布呈现的表单的标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM