【发布时间】:2026-01-26 00:25:01
【问题描述】:
我在使用 AJAX 操作链接时遇到了一些问题。每当单击链接时,UpdateTargetID 容器不会更新,除非该链接被单击两次(这会在第二次单击时引发异常,因为该项目已被删除;在此异常之后,页面会更新)。
此外,在第一次更新时,整个页面会重新加载到自身中,有点像 iframe。我有一个简单的 3 列布局(标题、左侧菜单、右侧内容),整个网页在右侧内容部分重新呈现。但只有一次。随后的操作链接点击不会递归地呈现页面本身。
我将以下代码用于 AJAX 图像链接(可在此处找到:ASP.NET MVC Ajax.ActionLink with Image):
public static class ImageActionLinkHelper
{
public static string ImageActionLink(this AjaxHelper helper, string imageUrl, string altText, string actionName, object routeValues, AjaxOptions ajaxOptions)
{
var builder = new TagBuilder("img");
builder.MergeAttribute("src", imageUrl);
builder.MergeAttribute("alt", altText);
var link = helper.ActionLink("[replaceme]", actionName, routeValues, ajaxOptions);
return link.ToString().Replace("[replaceme]", builder.ToString(TagRenderMode.SelfClosing));
}
}
这是我在 .aspx 中的操作链接:
<%= Ajax.ImageActionLink("../../content/imgs/delete_icon.png", "Delete error", "Delete", new { id = new Guid(item.ErrorId.ToString()) }, new AjaxOptions { Confirm = "Delete?", UpdateTargetId="errors" }) %>
“errors”是我要更新的id
[HttpPost]
public ActionResult Delete(Guid id)
{
var error = db.ELMAH_Error.FirstOrDefault(x => x.ErrorId == id);
db.DeleteObject(error);
db.SaveChanges();
return PartialView();
}
【问题讨论】: