1

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

我的问题是,我应该将什么传递给 AjaxOption.UpdateTargetId 以使其擦除整个页面并重新加载新结果,就像调用了 Html.ActionLink 一样(回想一下使用 Ajax.ActionLink 的唯一原因是我想要使​​用 POST 而不是 GET 调用的方法)?(并且由于此页面使用母版页,因此我无法选择仅在 body 元素上放置一个 ID。)

4

1 回答 1

0

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

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

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

于 2010-06-22T15:19:52.100 回答