javascript - 将值从代码隐藏传递给 js

标签 javascript c# asp.net arrays

我有这个在 map 上显示对象的 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){}

最佳答案

您可以使用 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);

关于javascript - 将值从代码隐藏传递给 js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52995379/

相关文章:

javascript - CSS用字母填充div的整个宽度,不改变字间距

c# - 动态引用变量名

c# - 解码Base64图像

css - ASP NET 站点不显示图像和 css

javascript - 按月份名称对谷歌图表中的 X 轴进行排序

javascript - JQuery .html() 删除 IE 8 上的换行符

javascript - 换行文字

c# - 尝试在 C# 中传递大量字符时尝试读取或写入 protected 内存

c# - 在弹出窗口关闭时终止 session ,直到浏览器关闭

c# - String.Format 未格式化电话号码