【问题标题】:ASP.NET MVC - how to make ajax helper replace itself?ASP.NET MVC - 如何让 ajax 助手替换自己?
【发布时间】:2013-01-29 20:15:19
【问题描述】:

我有这个:

@Ajax.ActionLink("PLUS", "VotePlus", "Forums", new {postId = Model.Id}, new AjaxOptions
    {
        UpdateTargetId = "votePlus",
        InsertionMode = InsertionMode.Replace
    },
    new{@id="votePlus"}
)

它会生成显示“PLUS”的链接。现在,我有一个返回 null 的控制器操作(我也尝试使用空的 partialView,但没有结果)。我希望这个链接在用户点击它时消失。我该怎么做?

编辑:看来这整件事不想工作。我创建了 span 标签并希望它自己替换,但是这个 ajax 助手不断将我重定向到控制器操作。 :-/

【问题讨论】:

  • 您是否在布局中引用了jquery.unobtrusive-ajax.js 文件?
  • 您缺少一个或多个脚本。我不认为jquery.unobtrusive-ajax.js 是您唯一需要的。
  • 是的,谢谢你们,我错过了这个。现在它可以工作了,但我还有另一个问题 - 我希望这个链接更新 span 元素并隐藏自己,我该怎么做?使用 ajax 助手是否也能做到这一点?
  • 你可以在它周围放一个容器并隐藏它

标签: ajax asp.net-mvc asp.net-mvc-3 asp.net-ajax


【解决方案1】:

一种稍微不同的方法,尝试使用 AjaxOptions 的 OnSuccess 回调来调用一个 javascript 函数来隐藏链接并更新 span

@Ajax.ActionLink("PLUS", "VotePlus", "Forums", new {postId = Model.Id}, new AjaxOptions
    {
        OnSuccess = ‘onSuccessProc’
    },
    new{@id="votePlus"}
)

// in your javascript section
function onSuccessProc(respData){
    // code to update span assuming server returns html
    $(‘#id_of_span’).html(respData);
    $(‘# votePlus’).hide();
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2011-03-23
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多