将值从代码隐藏传递给 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的主要内容,如果未能解决你的问题,请参考以下文章