获取Ajax返回以替换整个页面

时间:2010-06-22 14:46:46

标签: ajax model-view-controller actionlink

这是我上周发布的"Ajax.ActionLink not Posting"的后续问题。我最终把它发送到Post,它正确调用我的Delete操作并删除记录。 Delete方法返回RedirectToAction(“List”),以便重新列出新数据集减去已删除的记录。除了实际发生的事情 - 没什么。列表不会改变。我很确定我知道原因:调用Ajax.ActionLink会返回一个Ajax结果,它只能替换文档中的指定元素(UpdateTargetId选项参数)。因为我没有指定任何内容,所以它不会取代任何内容,即使它是一个完整的新页面。

我的问题是,我将如何传递给AjaxOption.UpdateTargetId以使其擦除整个页面并使用新结果重新加载,就像调用Html.ActionLink一样(回想起使用Ajax的唯一原因)。 ActionLink是我想用POST而不是GET调用的方法吗? (由于此页面使用母版页,我没有选择只在主体元素上添加ID。)

1 个答案:

答案 0 :(得分:0)

你可以在没有Ajax的情况下进行POST。您需要使用表单并将ActionLink更改为“提交”按钮。这可能是最简单的方法。

否则,您需要更改List操作以返回PartialView。这是渲染到UpdateTargetId的内容,您可以将其设置为页面上的外部div。

你真的需要重新加载你的列表吗?您可以执行Ajax POST来删除数据库中的行,并使用AjaxOptions的OnSuccess属性来调用JavaScript函数,然后从页面上的html中删除该行。