1
我在使用AJAX操作鏈接時遇到了一些麻煩。每當單擊鏈接時,UpdateTargetID容器不會更新,除非鏈接被單擊兩次(由於該項目已被刪除;在此異常之後,頁面將更新,因此會在第二次單擊時拋出異常)。MVC AJAX操作鏈接沒有正確更新
此外,在第一次更新時,整個頁面被重新加載到自身中,有點像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" }) %>
「錯誤」 時我的ID更新
[HttpPost]
public ActionResult Delete(Guid id)
{
var error = db.ELMAH_Error.FirstOrDefault(x => x.ErrorId == id);
db.DeleteObject(error);
db.SaveChanges();
return PartialView();
}
謝謝,看着執行partials。這確實解決了重複問題(現在在控制器中使用返回PartialView()而不是RedirectToAction),但是頁面不會異步更新。刪除確實是異步發生的,不過,它只是沒有直觀的反映。有關於此的任何想法? – bowlingforfish 2010-06-21 19:09:30