gpt4 book ai didi

javascript - knockout ajax.beginform 回调

转载 作者:行者123 更新时间:2023-11-30 17:29:46 25 4
gpt4 key购买 nike

我在表中使用了一个 knockout 可观察数组,每行都有一个包含在 MVC Razor Ajax.BeginForm 中的删除按钮。

删除按钮调用一个 javascript 函数,该函数执行 ko.utils.postJson 将 id 发送到服务器,以便在服务器上删除记录,然后从 viewModel 中删除,以便更新 UI。

我该怎么做才能在执行客户端删除之前等待 postJson?如果我使用 Ajax.BeginForm 的 OnSuccess 和 OnFailure 选项 - 我如何获取相关的 $data 从数组中删除?

remove 函数传入了一个引用,但如果我先在服务器端执行,我该如何将此引用传递给 OnSuccess 回调?

我知道我自己可以在删除函数中编写一个 .ajax 调用,但我更喜欢使用 Ajax.BeginForm(如果可行的话)。

谢谢菲尔

最佳答案

Djbielejeski 提出了一个很好的方法,但是如果你仍然想使用Ajax.BeginForm 来删除,你也可以将参数传递给OnSuccess 方法。

您只需将 id 传递给您的 OnSuccess 方法。像这样:

@using(Ajax.BeginForm("action", "controller", new AjaxOptions { OnSuccess = string.Format("OnSuccess({0})", rowId) }) { ... your html ... })

上面的代码假定 rowId 是一个整数,如果它是 guid 或一个字符串,您必须用引号 '' 引起来。

在您的 OnSuccess 函数中,您将获得允许您从可观察数组中删除元素的 id

function OnSuccess(id){
// id is available here... and you can get your viewmodel with ko.dataFor function
}

关于javascript - knockout ajax.beginform 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23384675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com