【问题标题】:How do you pass variables from c# to javascript?如何将变量从 c# 传递到 javascript?
【发布时间】:2011-04-02 23:49:36
【问题描述】:

希望将变量从 c# 传递到 javascript 以使用一些 jquery 代码。传递双精度、整数、字符串、数组。有谁知道怎么做?

例如,如果我在 c# 中有此代码片段:

string blah = "this is a blah string";

我想将它传递给 javascript,以便我可以在 jquery 中使用鼠标悬停事件:

$('#myDiv').mouseover(function(){ //do something with my 'blah' string });

【问题讨论】:

    标签: c# javascript variables


    【解决方案1】:

    没关系,我想我想通了。假设上面的代码,你可以用javascript写:

    <script type="text/javascript"> var JavascriptBlah = '<%=blah%>'</script>
    

    这会将 c# 中的 blah 传递给客户端的 JavascriptBlah。然后你可以在客户端进行操作。

    【讨论】:

    • 这样做的缺点是,如果“blah”中有一个单引号,那么您就有麻烦了。在传递之前先将字符串转换为 JSON 是有意义的。
    • 有谁知道如果使用“, 如果变量“blah”被分配了一个带有“私有异步任务 Foo()”的值我有它被分配一个私人异步任务,我想知道这是否是它对我不起作用的原因。
    【解决方案2】:

    您可以在后面的代码和会话中使用公共属性。这是一个使用可以从 Javascript 函数读取的公共属性的示例。

    前端:

    function IsAgentInProgram()
    {
        var optStatus = "<%=AgentOptInStatus%>";
    
        if (optStatus == "True")
            alert("You are opted in!");
        else
            alert ("You are opted OUT");
    }
    

    代码背后:

    public bool AgentOptInStatus;
    
    private void Page_Load(object sender, System.EventArgs e)
    {
        this.AgentOptInStatus = true;
    
    }
    

    【讨论】:

      【解决方案3】:

      我最近使用了这个ToJson() 扩展方法和Page.RegisterClientScriptBlock 方法来传递一个多级映射对象,该对象填充三个级联下拉列表。

      【讨论】:

      【解决方案4】:

      您可以使用 asp:HiddenField 变量在代码隐藏和 js 之间传递值。 这通过回发期间页面的视图状态完成...

      【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 2017-10-23
      • 2010-11-02
      • 2021-12-30
      • 2015-02-03
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      相关资源
      最近更新 更多