【问题标题】:Passing value from codebehind to js将值从代码隐藏传递给 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/…

标签: javascript c# asp.net arrays


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2018-12-23
    • 2011-12-08
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    相关资源
    最近更新 更多