gpt4 book ai didi

c# - 在 javascript 中使用 C# 变量

转载 作者:行者123 更新时间:2023-11-28 11:14:12 28 4
gpt4 key购买 nike

我想知道如何在 javascript 中使用 C# 变量?

最佳答案

如果我理解您的意图,请在您的 ASPX 页面中尝试此操作

<script type="text/javascript">
<!--
function showCSharpVar() {
alert('<%= myCSharpVariable %>');
}
-->
</script>

其中 myCSharpVariable 是在代码隐藏页面中声明的公共(public)变量,如下所示

public string myCSharpVariable = "display me";

如果您需要完成一些更复杂的事情,您还可以在页面上创建公共(public)属性。

另一个选项是使用 RegisterClientScriptBlock() 或 RegisterStartupScript() 将脚本直接嵌入到页面中。这些是我用来决定最适合情况的标准。

//A. 
// Page.RegisterClientScriptBlock() will insert the *block* of script just after <form>.
// Page.RegisterStartupScript() will insert the script at end of <form>.
//B.
// Page.RegisterClientScriptBlock() should usually be used for scripts encapsulated in functions. (hence the word "block")
// Page.RegisterStartupScript() can be used for any script, even if it's not in a function.
//C.
// Page.RegisterClientScriptBlock() should be used for functions that don't need to run on Page load.
// Page.RegisterStartupScript() should be used for scripts that must run on Page Load.
//D.
// Page.RegisterClientScriptBlock() should be used for a script that does not require the form elements to have been created.
// Page.RegisterStartupScript() should be used for scripts that require the form elements to have been created and uses references to them.
//

使用此方法,您可以将 JavaScript 注入(inject)到页面中(例如,您在评论中询问的数组),但这通常会导致难以跟踪错误,并且您将无法进行单元测试。

如果您使用 UpdatePanel,则可能需要使用其中之一,具体取决于它是完整回发还是部分回发。试试这个来解决这个问题

if (ScriptManager.GetCurrent(referenceControl.Page).IsInAsyncPostBack)
{

ScriptManager.RegisterClientScriptBlock(referenceControl, referenceControl.GetType(), "uniqueID",
"Your Script Here", true);
}
else
{
ScriptManager.RegisterStartupScript(referenceControl, referenceControl.GetType(), "uniqueID",
"Your Script Here", true);
}

关于c# - 在 javascript 中使用 C# 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3921633/

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