gpt4 book ai didi

c# - 等待 ClientScript.RegisterStartupScript 完成

转载 作者:行者123 更新时间:2023-12-03 12:01:47 24 4
gpt4 key购买 nike

我正在将 JavaScript 代码转换为 ASP.NET 代码,但遇到了问题。我仍然使用JS代码向用户显示提示窗口(在代码后面使用JS代码)。

JS 代码被执行,用户的输入被保存在隐藏字段中。在代码之后,我从隐藏字段读取值并将其保存在字符串中以供稍后使用。

问题在于,读取hiddenfield值的代码在JS代码执行之前就被执行了,这导致了一个空字符串。

如何让我的代码一直执行到 JS 代码完全执行完毕为止?

ClientScript.RegisterStartupScript(this.GetType(), "prompt", "var value = prompt('Enter your password here.'); storeinput(value);", true);
string code = hidValue.Value;
Debug.WriteLine("Password: " + code);

谢谢!

最佳答案

像这样将 ScriptManager 放入 asp.net 页面

<asp:ScriptManager ScriptMode="Release" LoadScriptsBeforeUI="false" EnablePageMethods="true"
runat="server" ID="ScriptManager1" />

在页面中创建方法并装饰[WebMethod]属性

[WebMethod]
public static void GetPasswordFromClient(string password) {
Debug.WriteLine("Password: " + password);
}

并用 javascript 编写此代码:

function OnSucceeded_SendPasswordToServer(result, userContext, methodName) {

}

function OnFailed_SendPasswordToServer(error, userContext, methodName) {
alert(error);
}

function SendPasswordToServer(string password) {
PageMethods.GetPasswordFromClient(password, OnSucceeded_SendPasswordToServer, OnFailed_SendPasswordToServer);
}

现在您可以使用注册脚本或在您的页面中使用:

var value = prompt('Enter your password here.'); 
SendPasswordToServer(value);

关于c# - 等待 ClientScript.RegisterStartupScript 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25383338/

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