C# 等待ClientScript.RegisterStartupScript完成

C# 等待ClientScript.RegisterStartupScript完成,c#,javascript,asp.net,delay,prompt,C#,Javascript,Asp.net,Delay,Prompt,我正在将JavaScript代码转换为ASP.NET代码,但遇到了一个问题。 我仍然使用JS代码向用户显示一个提示窗口(在代码隐藏中使用JS代码) 执行JS代码,并将用户的输入保存在hiddenfield中。 代码完成后,我从hiddenfield读取值,并将其保存在字符串中以供以后使用 问题是读取hiddenfield值的代码在执行JS代码之前执行,这会导致空字符串 在JS代码完全执行之前,我怎么能让我的代码做什么 ClientScript.RegisterStartupScript(this

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

执行JS代码,并将用户的输入保存在hiddenfield中。 代码完成后,我从hiddenfield读取值,并将其保存在字符串中以供以后使用

问题是读取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" />
并用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);

您不能这样做,对于这个示例,您可以使用ajax调用服务器端方法,在js代码运行完成后。。。RegisterStartupScript只是将js代码注册到页面,而不是执行granity,然后等待完成工作,这很烦人。你能给我举一个使用JS和使用AJAX的代码隐藏的例子吗?我对AJAX不是很熟悉
var value = prompt('Enter your password here.'); 
SendPasswordToServer(value);