【发布时间】:2009-12-09 15:56:09
【问题描述】:
我有一个由单选按钮矩阵组成的 mvc 视图。每行单选按钮都在一个组中,代表模型中的一个类型化对象。使用各种博客和帖子的指导,我已经成功地将发布的表单结果绑定到控制器操作中的类型化模型数组,但是似乎无法成功地反转效果并将现有模型绑定到单选按钮,同时保留它们的选中或未选中状态.
我的模型包含一个名为“AnswerValue”的属性,它介于 0 和 4 之间,应该与单选按钮名称匹配。我尝试将索引值更改为模型值“AnswerId”,但这样做的绑定不再起作用(我相信索引必须从零开始)。这是我到目前为止使用的一些资源Post 和Article by 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++;
}
%>
【问题讨论】:
标签: asp.net asp.net-mvc data-binding strong-typing