部分视图的回发问题

时间:2011-08-20 18:19:30

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我有以下观点

<form action="/Questionnaire/Submit" method="post">
  <%:"UserName : "%>

  <%=ViewData["UserName"]%>
 <%=Html.TextBox("test",ViewData["tt"])%>
<p />
 <%:"Phone Number :"%>

 <%=ViewData["PhoneNumber"]%>
 <p />
 <%
  foreach (var q in Model)
   {
       Html.RenderPartial("Question", q);

   }
 %>
  <input type="submit" name="submit" value="submit" />
  </form>

呈现以下部分视图

<%    using (Html.BeginForm("Submit", "Questionnaire", FormMethod.Post))
      {%>

<%:"Question Number "%>
<%=Model.QuestionNumber%>
<%:"  "%>
<%=Model.Body%>
<%:"  "%>
<%
      foreach (var option in Model.Options)
      {%>
      <p/>

   <%=Html.RadioButton(option.QuestionId.ToString(), (option.IsSelected) )%> &nbsp;<%=     option.OptionBody%>
      <%
      }
  }
%>

问题是,表单不提交,当我从主视图中删除“foreach”语句时,它可以正常工作

我的目标,是让更新的模型(从主视图和部分视图)稍后将其保存在DB中

1 个答案:

答案 0 :(得分:2)

您的主视图包含一个表单,然后您的局部视图也会在每次呈现时创建一个表单,因此您将留下一个包含多个表单但只有一个“提交”按钮的页面。

我不是100%确定您需要做什么,但我会尝试从部分中删除“BeginForm”调用,看看是否能解决问题。