将C#变量传递给JS的最佳方法

时间:2009-07-10 14:51:04

标签: c# javascript

我有几个用JS编写的函数在我的网站上进行错误检查。在一个实例中,如果DB中的某个实例为true,我想禁用其中两个检查。

我在aspx.cs上有这样的东西

if (this.exemptcheck == true) {
  // could set a variable to pass or whatever is optimal here
}

然后在JS中,我的.aspx

中有这样的函数
if (NotANumberCheck(item.GetMember("TotalSpace").Value, 'Space must be Numeric') == false) { return false; }

如果this.examptcheck返回true,我不希望运行此检查。这样做的最佳方法是什么?我听说过将变量放在不可见的字段中,但这似乎并不理想。任何建议将不胜感激。

由于

5 个答案:

答案 0 :(得分:2)

在aspx中,设置一个名为ExemptCheck的成员变量。稍后,在JS中,执行以下操作:

var exemptCheck = <% Response.Write(ExemptCheck.ToString()) %>;

这将为您提供一个与C#变量具有相同值的JS变量。

答案 1 :(得分:0)

您可以在页面中编写一个脚本部分,将变量设置为true / false,然后在JS中检查该变量。

答案 2 :(得分:0)

只有当this.examptcheck为true时,您才可以使用Response.Write()javascript代码。

答案 3 :(得分:0)

只有在条件为真时才注册你的js函数,你不需要检查变量:

C#代码:

if (this.exemptcheck == true) {
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "KEY", "/* code of your JS function that handle the true case */", true);
}

答案 4 :(得分:0)

我最终使用以下命令设置aspx.cs代码中的值

Page.ClientScript.RegisterStartupScript(this.GetType(),“”,“var stackedUnknownExemptCheck = true;”,true);