gpt4 book ai didi

javascript - 从 asp.net 正确执行 javascript 代码

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

我试图从后面的代码中的TestConfirmValue()方法获取confirm_value,但是当调用javascript函数callCheckMethod()时,函数的最后一行

alert("<%= TestConfirmValue() %>") 在其他任何事情之前调用。因此,首先调用 TestConfirmValue() 并且 confirm_value 始终为 null。

如何在调用 TestConfirmValue() 之前先从 javascript 函数获取要设置的 confirm_value

On Code behind:

      protected override void OnPreRender(EventArgs e)
{

ClientScript.RegisterStartupScript(GetType(), "Javascript", "callCheckMethod();", false);
}

On aspx page:

 function callCheckMethod() {

var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("Are you sure?")) {
confirm_value.value = "Yes";

} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
alert("<%= TestConfirmValue() %>");
}

//Code Behind

public string TestConfirmValue()
{
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == null) return null;

if (confirmValue=="Yes")
{
//do something
}

return string.Empty;

}

最佳答案

你不能。当你写<% something %>时,它始终在创建页面之前呈现在服务器上。只有执行完所有的asp标签后,页面才会被发送到客户端并调用Javascript。

有几种方法可以完成您正在尝试的操作,大多数都涉及 ajax 调用。查看“PageMethods”,这是一种从客户端 Javascript 调用服务器端静态方法的方法。

http://www.ajaxtutorials.com/quickstart/ajax-tutorial-page-methods-in-asp-net/

关于javascript - 从 asp.net 正确执行 javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24212016/

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