私は自分のウェブサイトにフィードバックを実装しています。現在のように、ユーザーにはセクションのグループが表示され、それぞれに質問のグループが含まれています。各質問には、ラジオボタンの形式で 5 つの可能な回答があり、すべての質問には可能な回答の同じリストがあります。
すべてが希望どおりに描画されますが、ページ全体で選択可能なラジオボタンが1つだけになる同じ質問の一部として、ページ上のすべてのラジオボタンが認識されるようです。
これは、ページを生成するために使用される私のコードです:
<div class="centered feedbackwrapper ">
@using (Html.BeginForm("SaveFeedback", "Leertraject")) {
<h3>Feedback voor leertraject @Model.LeertrajectCode</h3>
foreach (var section in Model.Sections) {
<div class="feedbackonderdeel well">
<h4>@section.Name</h4>
@foreach (var question in section.Questions) {
<div class="feedback ">
<p class="feedbackvraag">@question.Question
<br />
@{
var choices = (IList<FeedbackChoiceViewModel>) Session["Choices"];
}
@foreach (var choice in choices) {
<span class="feedbackkeuze">
@Html.RadioButtonFor(x => choice.ChoiceID, @choice.ChoiceID, new {@id = @question.QuestionID})
@choice.Choice
</span>
}
</p>
</div>
}
</div>
}
<input type="submit" class="btn btn-info" value="@Strings.SaveFeedback" />
}
</div>
生成されたビュー:
そして、生成されたソース コード:
<div class="feedback ">
<p class="feedbackvraag">Vraag 1
<br />
<span class="feedbackkeuze">
<input checked="checked" id="1" name="keuze.KeuzeID" type="radio" value="1" />
OV
</span>
<span class="feedbackkeuze">
<input checked="checked" id="1" name="keuze.KeuzeID" type="radio" value="2" />
V
</span>
<span class="feedbackkeuze">
<input checked="checked" id="1" name="keuze.KeuzeID" type="radio" value="3" />
G
</span>
<span class="feedbackkeuze">
<input checked="checked" id="1" name="keuze.KeuzeID" type="radio" value="4" />
ZG
</span>
<span class="feedbackkeuze">
<input checked="checked" id="1" name="keuze.KeuzeID" type="radio" value="5" />
NVT
</span>
</p>
</div>
<div class="feedback ">
<p class="feedbackvraag">Vraag 2
<br />
<span class="feedbackkeuze">
<input checked="checked" id="2" name="keuze.KeuzeID" type="radio" value="1" />
OV
</span>
<span class="feedbackkeuze">
<input checked="checked" id="2" name="keuze.KeuzeID" type="radio" value="2" />
V
</span>
<span class="feedbackkeuze">
<input checked="checked" id="2" name="keuze.KeuzeID" type="radio" value="3" />
G
</span>
<span class="feedbackkeuze">
<input checked="checked" id="2" name="keuze.KeuzeID" type="radio" value="4" />
ZG
</span>
<span class="feedbackkeuze">
<input checked="checked" id="2" name="keuze.KeuzeID" type="radio" value="5" />
NVT
</span>
</p>
</div>
質問に対する回答の各セットが同じ ID を持っていることを考えると、ページ上のすべてのラジオボタンではなく、それらがグループ化されることを期待していました。ID を調べてどれが一緒に属しているかを判断するのではなく、すべてのラジオボタンを 1 つのグループとして扱うのはなぜですか?