ラジオ ボタンのマトリックスで構成された mvc ビューがあります。ラジオ ボタンの各行はグループに属し、モデルから型指定されたオブジェクトを表します。さまざまなブログや投稿のガイダンスを使用して、投稿されたフォームの結果をコントローラーアクションの型付きモデル配列に正常にバインドしましたが、効果を元に戻し、既存のモデルをラジオボタンにバインドしながら、選択状態または選択解除状態を維持することはできません.
私のモデルには「AnswerValue」というプロパティが含まれており、これは 0 から 4 の間であり、ラジオボタンの名前と一致する必要があります。インデックス値をモデル値「AnswerId」に変更しようとしましたが、そうすると機能していたバインディングが機能しなくなりました(インデックスはゼロベースでなければならないと思います)。これまでにこの投稿で使用したいくつかのリソースと、 Scott Hanselman による記事を使用して、現在の場所にたどり着きました。
この双方向バインディングを実行する方法について誰かが洞察を持っていれば、それは大歓迎です。
ありがとう
私のコントローラー:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Save([Bind(Prefix = "SurveyAnswer")] SurveyAnswer[] responses, int SurveyID)
{
私の見解:
<%
int questionIndex = 0;
foreach (SurveyAnswer q in Model)
{
%>
<%=Html.Hidden("SurveyAnswer.Index", questionIndex)%>
<%=Html.Hidden("SurveyAnswer["+questionIndex+"].AnswerId", q.AnswerId) %>
<tr>
<td style='background-color: #aaaaaa;padding-left: 10px; padding-right: 10px;border-right: solid 1px #fffff;'><%= questionIndex+1 %></td>
<td style='text-align: right;'><%= q.Question.DisplayValue %></td>
<td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "0", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue"})%></td>
<td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "1", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue" })%></td>
<td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "2", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue" })%></td>
<td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "3", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue"})%></td>
<td><%=Html.RadioButton("SurveyAnswer[" + questionIndex + "].AnswerValue", "4", new { name = "SurveyAnswer[" + questionIndex + "].AnswerValue" })%></td>
</tr>
<%
questionIndex++;
}
%>