我的视图中有一个表,列出了每一行的案例细节。每行都有一个名为"查看详细信息"的提交按钮。我有两个隐藏字段,TicketNumber和CaseId,当用户点击"查看详细信息"按钮。
问题是:它总是在表中发送第一个案例的TicketNumber和CaseId,无论哪个"查看详细信息"按下按钮。
以下是视图的代码:
@model IEnumerable<Models.Case>
@{
ViewBag.Title = "AbandonedVehiclesLandingPage";
}
<h2>AbandonedVehiclesLandingPage</h2>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.TicketNumber)
</th>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Status)
</th>
<th>
@Html.DisplayNameFor(model => model.SubmittedOn)
</th>
<th></th>
</tr>
</table>
@using (Html.BeginForm("ViewCase", "Home",FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.TicketNumber)
</td>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Status)
</td>
<td>
@Html.DisplayFor(modelItem => item.SubmittedOn)
</td>
<td>
<input type="hidden" value="@item.TicketNumber" name="TicketNumber" />
<input type="hidden" value="@item.CaseId" name="CaseId" />
<input type="submit" value="View Details" />
</td>
</tr>
}
</table>
}
以下是接收行动:
[HttpPost]
public ActionResult ViewCase(string TicketNumber, string CaseId)
{
string token = (string)Session["token"];
if(token!=null)
{
if (provider.ValidateUser(Session["token"].ToString(), ""))
{
CaseService service = new CaseService("");
CaseNote caseInfo = service.fetchSingleCase(TicketNumber, CaseId);
return View("ViewCase", caseInfo);
}
}
return Redirect(HttpContext.Application["connectUrl"].ToString()
+ HttpContext.Application["redirectUrl"].ToString());
}
最后要说的是,它一直工作到我丢失原始View代码并且不得不重新编写它。感觉就像我在这里失踪的那么小。
答案 0 :(得分:2)
按如下方式更改您的表格:
<table>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.TicketNumber)
</td>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Status)
</td>
<td>
@Html.DisplayFor(modelItem => item.SubmittedOn)
</td>
<td>
@using (Html.BeginForm("ViewCase", "Home",FormMethod.Post))
{
@Html.AntiForgeryToken()
<input type="hidden" value="@item.TicketNumber" name="TicketNumber" />
<input type="hidden" value="@item.CaseId" name="CaseId" />
<input type="submit" value="View Details" />
}
</td>
</tr>
}
</table>