我正在编写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是约会
答案 0 :(得分:1)
当您查看每个表单的标记时,您看到了什么?
我的猜测是每个HTML元素都没有获得唯一的名称。如果是这种情况,那么它将永远不会提交正确的表格,因为它不知道它们之间的区别。
页面上的每个表单元素都需要具有唯一的名称:
<input id="Text1" name="Text1" />
<input id="Text2" name="Text2" />
等