将值从代码隐藏传递给 js

Posted

技术标签:

【中文标题】将值从代码隐藏传递给 js【英文标题】:Passing value from codebehind to js 【发布时间】:2019-03-30 10:14:01 【问题描述】:

我有这个在地图上显示对象的 javascript 代码:

 <script type="text/javascript">
            google.maps.event.addDomListener(window, 'load', init);

            function init() 
                var locations = [
                    [40.6128, -73.9976, "images/pin-apartment.png", "estate-details-right-sidebar.html", "images/infobox-offer1.jpg", "Fort Collins, Colorado 80523, USA", "$320 000"],[41.6926, -87.6021, "images/pin-house.png", "estate-details-right-sidebar.html", "images/infobox-offer5.jpg", "E. Elwood St. Phoenix, AZ 85034, USA", "$300 000"]
                ];

                offersMapInit("offers-map", locations);
            

        </script>

但我希望它从数据库/c# 中填充。我怎样才能做到这一点?

如何将这种数组从我的 page_load 传递到这个 js 脚本?

 protected void Page_Load(object sender, EventArgs e)

【问题讨论】:

你需要从js到C#执行一个Http请求。看起来您正在使用 WebForms,因为您需要创建一个 Web 服务。查看本指南:codeproject.com/Articles/14610/… 【参考方案1】:

您可以使用 JsonConvert.SerializeObject 序列化 C# 数组。例如

protected string StringArray  get; set;
Page_Load(object sender, EventArgs e) 
   StringArray = JsonConvert.SerializeObject(new string[] "foo", "bar");

在 Javascript 中:

<script type="text/javascript">
    google.maps.event.addDomListener(window, 'load', init);

    function init() 
        var locations = <%= StringArray %>;

        offersMapInit("offers-map", locations);
    

</script>

您也可以从 C# 中声明变量:

var stringArray = JsonConvert.SerializeObject(new string[] "foo", "bar");
ClientScript.RegisterStartupScript(GetType(), "locations", $"var locations = stringArray;", true);

【讨论】:

以上是关于将值从代码隐藏传递给 js的主要内容,如果未能解决你的问题,请参考以下文章

将值从后面的代码传递给 Jquery 函数

如何将值从javascript传递到iOS UIWebView

如何将值从 JS 传递回 Python

Java:如何将值从类/bean传递给servlet

如何将值从java传递给PHP?

将值从灯箱传递给父级