【发布时间】:2012-03-07 18:27:52
【问题描述】:
我正在使用 c#.NET MVC2,我正在尝试创建一个 ajax 表单,该表单调用一个删除数据库记录 (RemoveRelation) 的方法。删除记录的过程按预期工作。 删除记录后,表单应调用从视觉对象中删除记录的 javascript 函数 (RemoveRelation(10))。这是通过 AJAX 调用完成的,在 Internet Explorer 9 和 Firefox 4 上都按预期工作,但是在 Chrome 上由于某种原因更新没有通过 AJAX 调用发生,并且当删除记录的表单正在刷新时,整个页面正在刷新提交(这是不正确的,因为表单应该是使用 AJAX 功能生成的)。这是我用来生成表单的代码:
<% using (Ajax.BeginForm("RemoveRelation", "Relations",
new AjaxOptions { OnSuccess = "function() { RemoveRelation(10); } ", InsertionMode = InsertionMode.Replace, UpdateTargetId = "Relation10" },
new { id = "DeleteForm10" }))
{ %>
另外,在 Chrome 上,我还有一个单独的 Ajax.BeginForm 的问题。
<% using (Ajax.BeginForm("AddRelation", "Relations", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "AddRelation" }, new { id = "AddRelationForm" }))
{ %>
上面的 Begin Form 代码用于将关系添加到列表中,而不是删除它们。我再次强调,在 IE9 和 FF4 上,上述内容按预期工作,在 chrome 上不是添加一个并通过 ajax 更新,而是添加两次记录并再次刷新整个页面而不是进行 ajax 更新。
为什么这会在 chrome 中崩溃?
【问题讨论】:
-
您可以考虑使用jquery.malsup.com/form 代替
标签: c# asp.net asp.net-mvc-2 asp.net-ajax