gpt4 book ai didi

javascript - PageMethods 未定义,添加静态会破坏它

转载 作者:行者123 更新时间:2023-11-28 04:53:36 26 4
gpt4 key购买 nike

我正在开发一个 ASP.Net 应用程序,在使用 JavaScript 调用后台代码中的函数时遇到了一些麻烦。

这是我尝试运行的 JavaScript 函数:

PageMethods.EditRecord($(this).data("row-id"));

这是我的函数背后的代码:

public void EditRecord(string logID)
{
lblLogID.Text = logID;

ClientScript.RegisterStartupScript(GetType(), "Show", "<script> $('#edit').modal('toggle');</script>");
}

如果我像这样运行它,我会收到以下错误:

Uncaught ReferenceError: PageMethods is not defined

我做了一些阅读,意识到我应该将 public void EditRecord(string logID) 更改为 public static void EditRecord(string logID)

不幸的是,当我尝试这样做时,lblLogIDClientScript 给我带来了以下错误的麻烦:

An object reference is required for the non-static, method, or property...

如何解决这个问题,使用 JavaScript 运行我的代码隐藏方法,而不存在所有这些缺点?

最佳答案

您需要使用成功回调函数。

在你的脚本中,

PageMethods.EditRecord($(this).data("row-id"), onSuccess);

function onSuccess(logId)
{ $("#"+"<%=lblLogId.ClientID%>").html(logId);
}

在您的 aspx.cs 中,

[WebMethod]
public static string EditRecord(string logID)
{
return logID;
}

通过移动设备回答。

希望这可以帮助您实现。

注意:它必须是静态的。您不能在静态方法中使用 ASP.net 控件。您所能做的就是从方法中返回您想要的任何内容并在 JavaScript 中使用它。

关于javascript - PageMethods 未定义,添加静态会破坏它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42717843/

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