可能改变RadioButtonFor的名字吗?(Possible to change name of

2019-09-17 10:15发布

我使用foreach循环insoide我的视图中显示几行单选按钮..

sample radiobutton

<tr>
    <td width="30%">
    Integrity
    </td>
    <td width="17%">@Html.RadioButtonFor(x => x.main.ElementAt(i).nested.integrity, 1, new { id = "main_" + i + "__nested_integrity) Poor
    </td>
    <td width="18%">@Html.RadioButtonFor(x => x.main.ElementAt(i).nested.integrity, 2, new { id = "main_" + i + "__nested_integrity" }) Satisfactory
     </td>
     <td width="18%">@Html.RadioButtonFor(x => x.main.ElementAt(i).nested.integrity, 3, new { id = "main_" + i + "__nested_integrity" }) Outstanding
     </td>
     <td width="16%">@Html.RadioButtonFor(x => x.main.ElementAt(i).nested.integrity, 4, new { id = "main_" + i + "__nested_integrity" }) Off
     </td>
     </tr>



因为我得到的问题,同时示范因此结合我创建指南ID,以满足我的需求(不同的递增ID)。
但同样的问题带有name属性,我认为。 对于第一和每一个循环我得到相同的名称属性(不加),即如果我从第一环选择radiobuttton那么它与其他循环取消taht行。

喜欢

Loop1 id= "main_0__nested_integrity"
Loop2 id= "main_0__nested_integrity"
Loop1 name= "nested.integrity"
Loop2 name= "nested.integrity"

你可以看到name属性所有环路都一样,用不同的ID。
现在的问题是...难道posssible覆盖像ID RadioButtonFor的name属性?

Answer 1:

现在的问题是...难道posssible覆盖像ID RadioButtonFor的name属性?

不,那是不可能的。 name属性会从你作为第一个参数传递lambda表达式来计算。

个人而言,我会使用编辑模板,不与任何打扰循环在所有

@model MainViewModel
<table>
    <thead>
        ...
    </thead>
    <tbody>
        @Html.EditorFor(x => x.main)
    </tbody>
</table>

并在相应的编辑器模板:

@model ChildViewModel
<tr>
    <td width="30%">
        Integrity
    </td>
    <td width="17%">
        @Html.RadioButtonFor(x => x.nested.integrity, 1) Poor
    </td>
    <td width="18%">
        @Html.RadioButtonFor(x => x.nested.integrity, 2) Satisfactory
     </td>
     <td width="18%">
         @Html.RadioButtonFor(x => x.nested.integrity, 3) Outstanding
     </td>
     <td width="16%">
         @Html.RadioButtonFor(x => x.nested.integrity, 4) Off
     </td>
</tr>


文章来源: Possible to change name of RadioButtonFor?