C# 在编辑器模板中使用单选按钮组

C# 在编辑器模板中使用单选按钮组,c#,asp.net-mvc,radio-button,C#,Asp.net Mvc,Radio Button,我创建了一个模型的编辑器模板。它还有其他几个字段,但给我带来麻烦的是单选按钮。我创建单选按钮如下: @Html.RadioButtonFor(x => x.EVote, true) 当它输出单选按钮时,我得到这个。他们有不同的名字,所以他们不是一个广播组 <input data-val="true" data-val-required="The ApproveVote field is required." id="FinalApproval_0__EVote" name="Fin

我创建了一个模型的编辑器模板。它还有其他几个字段,但给我带来麻烦的是单选按钮。我创建单选按钮如下:

@Html.RadioButtonFor(x => x.EVote, true)
当它输出单选按钮时,我得到这个。他们有不同的名字,所以他们不是一个广播组

<input data-val="true" data-val-required="The ApproveVote field is required." id="FinalApproval_0__EVote" name="FinalApproval[0].EVote" type="radio" value="True">
<input data-val="true" data-val-required="The ApproveVote field is required." id="FinalApproval_0__EVote" name="FinalApproval[0].EVote" type="radio" value="True">


那么如何让我的模型为这些单选按钮创建一个单选组呢?我已尝试添加
name=“FinalNames”
的HTML属性,MVC将覆盖该名称并继续使用其命名标准。

要将单选按钮添加到一个组中,您可以将代码更改为:

@Html.RadioButton("GROUPNAMEHERE", "LABEL", BOOLVALUEFORCHECKED)
不确定在此实例中是否确实需要RadioButton

编辑:如果确实需要RadioButton,请尝试以下操作:

@Html.RadioButtonFor(x => x.EVote, true, new { Name = "GROUPNAME" })

要将单选按钮添加到组中,您可以将代码更改为:

@Html.RadioButton("GROUPNAMEHERE", "LABEL", BOOLVALUEFORCHECKED)
不确定在此实例中是否确实需要RadioButton

编辑:如果确实需要RadioButton,请尝试以下操作:

@Html.RadioButtonFor(x => x.EVote, true, new { Name = "GROUPNAME" })

实际上我已经试过了。问题仍然是,当使用编辑器模板时,asp.net显然会忽略您提供的名称并继续使用它自己的名称。Group不是有效的HTML属性,它必须是name,这就是单选组的工作方式。它会查找具有该名称的其他单选按钮,然后仅强制从该组中选择一个。您可能认为可以在HTMLAtrributes参数中使用
新的{name=“someName”}
,但asp.net还是忽略了这一点。虽然HTML属性在HTML文档中不区分大小写,但在使用RadioButton或RadioButton时,必须将名称指定为大写,即
new{name=“SomeName”}
,否则它会忽略它并使用其命名约定。啊,我想我犯了一个错误。我打字后,这群人看起来很奇怪。让我编辑一下,我已经试过了。问题仍然是,当使用编辑器模板时,asp.net显然会忽略您提供的名称并继续使用它自己的名称。Group不是有效的HTML属性,它必须是name,这就是单选组的工作方式。它会查找具有该名称的其他单选按钮,然后仅强制从该组中选择一个。您可能认为可以在HTMLAtrributes参数中使用
新的{name=“someName”}
,但asp.net还是忽略了这一点。虽然HTML属性在HTML文档中不区分大小写,但在使用RadioButton或RadioButton时,必须将名称指定为大写,即
new{name=“SomeName”}
,否则它会忽略它并使用其命名约定。啊,我想我犯了一个错误。我打字后,这群人看起来很奇怪。让我编辑一下。