首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待ClientScript.RegisterStartupScript完成

等待ClientScript.RegisterStartupScript完成
EN

Stack Overflow用户
提问于 2014-08-19 12:22:28
回答 1查看 2.8K关注 0票数 1

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

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

问题是在执行JS代码之前执行用于读取隐藏字段值的代码,这将导致一个空字符串。

在JS代码被完全执行之前,我怎样才能让我的代码实现呢?

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

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 12:53:49

将ScriptManager放在asp.net页面中,如下所示

代码语言:javascript
复制
<asp:ScriptManager ScriptMode="Release" LoadScriptsBeforeUI="false" EnablePageMethods="true"
    runat="server" ID="ScriptManager1" />

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

代码语言:javascript
复制
[WebMethod]
public static void GetPasswordFromClient(string password) {
    Debug.WriteLine("Password: " + password);
}

并用javascript编写以下代码:

代码语言: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); 
}

现在您可以使用寄存器脚本或在页面中使用:

代码语言:javascript
复制
var value = prompt('Enter your password here.'); 
SendPasswordToServer(value);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25383338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档