在一个页面上出现多个表单:按钮提交错误的表单

时间:2012-01-04 12:51:45

标签: asp.net-mvc forms

我正在编写Windows应用程序的一部分网站版本。它基本上是一个日历。人们可以查看约会并进行编辑。对于每个约会,我都有一个隐藏的表单,只有当用户点击链接时才会显示。现在问题只是页面上第一次约会的形式有效。如果我单击另一个表单的提交按钮,它将实际提交第一个表单。这里是生成表单的代码:

 <div class="popupbox" id="popuprel@{@mit.Id_mit}_@{@day.Day}">
 @for (int i = 0; i < tcsForDay.Count; i++)
 {
     <p>
     @tcsForDay[i].Tag_child.Zeitvo - @tcsForDay[i].Tag_child.Zeitna <br />
     @if (tcsForDay[i].Subtype != null)
     {
           @:( @tcsForDay[i].Subtype.Type) @tcsForDay[i].Tag_child.Text
           <a href="#" rel="AppForm@{@mit.Id_mit}_@{@day.Day}_@{@i}" class="AppEditLink">Editieren</a>

     }
     else
     {
           @:( @Model.typeTagesEinteilung.Type) @tcsForDay[i].Tag_child.Text
           <a href="#" rel="AppForm@{@mit.Id_mit}_@{@day.Day}_@{@i}">Edit</a>
     }
     </p>
     <div id="AppForm@{@mit.Id_mit}_@{@day.Day}_@{@i}"class="AppForm">

     @{
           string formname = String.Format("AppFormForm{0}_{1}_{2}", mit.Id_mit, day.Day, i);
     }
     @using (Html.BeginForm("Index", "Plan", FormMethod.Post, new { @class = "AppFormForm", name = formname }))
     {

          @Html.Hidden("tagchild_id", tcsForDay[i].Tag_child.Id_tagchild);
          @Html.Label("Text")<br />
          @Html.TextBox("Text", null, new { @class = "required" })<br />
          @Html.Label("Zeit Von")<br />
          @Html.TextBox("ZeitVon", null, new { @class = "required time" })<br />
          @Html.Label("Zeit Nach")<br />
          @Html.TextBox("ZeitNach", null, new { @class = "required time" })<br />

          <input type="submit" value="Speichern" name="button@{@mit.Id_mit}_@{@day.Day}_@{@i}" />

      }
      </div>


 }

这些名字可能并不明显。 tc或Tag_child是约会

1 个答案:

答案 0 :(得分:1)

当您查看每个表单的标记时,您看到了什么?

我的猜测是每个HTML元素都没有获得唯一的名称。如果是这种情况,那么它将永远不会提交正确的表格,因为它不知道它们之间的区别。

页面上的每个表单元素都需要具有唯一的名称:

<input id="Text1" name="Text1" />

<input id="Text2" name="Text2" />