mvc radiobuttons in foreach
Ich bin mit MVC und ich habe einige RadioButtons in einer foreach:
foreach (var item in group) {
<tr>
<td>
@Html.RadioButtonFor(modelItem => item.CheckerApproved, true)
@Html.RadioButtonFor(modelItem => item.CheckerApproved, false)
</td>
</tr>
}
Also für jedes Element in der Gruppe sollte es eine radiobutton für true und false.
Das problem ist, wenn es mehrere Elemente in der Gruppe können Sie am Ende mit zwei Elementen:
<tr>
<td>
<input id="item_CheckerApproved" type="radio" value="True" name="item.CheckerApproved">
<input id="item_CheckerApproved" type="radio" value="False" name="item.CheckerApproved
checked="checked">
</td>
</tr>
<tr>
<td>
<input id="item_CheckerApproved" type="radio" value="True" name="item.CheckerApproved">
<input id="item_CheckerApproved" type="radio" value="False" name="item.CheckerApproved
checked="checked">
</td>
</tr>
Was ich wollte, war für die radiobuttons
Gruppen zu trennen. So ändern Sie den Wert in der ersten Zeile nicht-Effekt-der Wert in der zweiten Zeile. Aber wenn Sie sagen, wahr in der oberen Zeile und wählen Sie dann entweder den Wert in der zweiten Zeile das true in der ersten Zeile abgebrochen wird.
Ich glaube, das ist, weil Sie verbunden sind durch das name-Attribut. Allerdings kann man eigentlich nicht manuell setzen Sie das Attribut name.
Weiß jemand wie ich es schaffen konnte, so dass die true-und false für jede Zeile, die miteinander interagieren, aber es ist kein Effekt auf radiobuttons
in anderen Zeilen?
- Diese Art der erklärt, was Los ist : blog.hmobius.com/post/2008/08/14/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht schreiben Schleifen in Aussicht. Sie sind hässlich und Sie am Ende mit unerwünschtem Verhalten, wie beschrieben, in Ihrer Frage. Verwenden Sie editor Vorlagen, wie diese:
Hier nehme ich an, dass Ihrer Ansicht Modell hat eine Groups-Auflistung der Eigenschaft des Typs
IEnumerable<GroupViewModel>
. Alles, was jetzt übrig bleibt, ist zu schreiben der entsprechende editor-Vorlage, die ausgeführt werden, die für jedes element in der Groups-Auflistung (~/Views/Shared/EditorTemplates/GroupViewModel.cshtml
):Nun nicht nur, dass Sie nicht mehr schreiben müssen, das alle hässlich foreach-Schleifen in Ihrem Blick, aber Sie am Ende mit der richtigen Namenskonvention.
Eine Möglichkeit ist die Verwendung einer for-Schleife und RadioButton statt RadioButtonFor
Einen Weg, wie zu verwenden radiobuttons in foreach
Hoffe es hilft 😉