我使用asp.net C#MVC3与剃刀模板,并想知道以下内容:如何根据for循环提交表单多次?
我有一个窗体,此窗体包含一个按钮。如果我按一下按钮下面的代码会被执行:
function OnGetSelectedFieldValues(result) {
for (var i = 0; i < result.length; i++) {
$("#id").val(result[i]); //This will replace the value of my hidden field with the selected id
$("#DeleteForm").submit();
}
}
按照我的逻辑本应提交和删除,我已经从我的GridView中选择每一行。 它确实选择了每条记录,这是我用Javascript“alert()”测试过的。 但它只会删除第一条记录,为什么会发生这种情况,我该如何解决这个问题?
问候,
马尔科
编辑: 这是我的形式(更容易理解):
@using (Html.BeginForm("Delete", "Home", FormMethod.Post, new { id = "DeleteForm" }))
{
<input type="hidden" id="id" name="id" />
<input type="button" id="button" value="Verwijder geselecteerde" />
}
我的控制器:
[HttpPost]
public ActionResult Delete(int id)
{
ErrorRepository repo = new ErrorRepository();
var test = repo.GetById(id);
repo.Delete(test);
return RedirectToAction("Index");
}
你应该只提交所有值的同时,处理在遍历他们你的C#代码。不要做多个POST请求。 – Yuck 2012-04-13 13:32:56
一般来说,这看起来很糟糕。您应该尝试对所有删除操作提出一个请求以节省流量和延迟。这也可能会导致您的网络服务器配置出现问题,例如,如果您安装了某种反洪泛安全过滤器(或甚至在生产中稍后) – worenga 2012-04-13 13:35:45