Javascript 将对象数组传递给母版页';s内容页
我有一个对象数组,从一个文本文件中加载到服务器端的C#代码中,我正试图将这个数组传递到一个内容页。当我没有使用母版页时,它可以正常工作,但一旦我添加了母版页,它就不再工作了 以下是aspx.cs页面:Javascript 将对象数组传递给母版页';s内容页,javascript,c#,asp.net,webforms,Javascript,C#,Asp.net,Webforms,我有一个对象数组,从一个文本文件中加载到服务器端的C#代码中,我正试图将这个数组传递到一个内容页。当我没有使用母版页时,它可以正常工作,但一旦我添加了母版页,它就不再工作了 以下是aspx.cs页面: // Convert list of objects to a json array string jsonString = JsonConvert.SerializeObject(clownIncidents); cs.RegisterArrayDeclaration("markers",
// Convert list of objects to a json array
string jsonString = JsonConvert.SerializeObject(clownIncidents);
cs.RegisterArrayDeclaration("markers", jsonString);
当我试图在内容页上访问它时,它会说标记未定义:
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
<div id="map" ></div>
<script src ="jss/Maps.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?
key=MYKEYcallback=initMap"></script>
</asp:Content>
这是因为从cs.RegisterArrayDeclaration(“markers”,jsonString)生成的JavaScript代码代码>显示在内容页中脚本之后的HTML中。因此,当脚本运行时,变量
markers
尚未定义
要解决这个问题,您需要在母版页中添加一个新的
,它必须位于
元素之后,并使用该ContentPlaceHolder来创建JavaScript
例如,您的母版页将是:
<form runat="server">
<%-- Here is your Master page --%>
</form>
<asp:ContentPlaceHolder ID="ScriptContentPlaceHolder" runat="server">
</asp:ContentPlaceHolder>
然后,在.aspx内容页面中,您可以使用如下脚本(在.aspx页面末尾添加以下代码片段):
<form runat="server">
<%-- Here is your Master page --%>
</form>
<asp:ContentPlaceHolder ID="ScriptContentPlaceHolder" runat="server">
</asp:ContentPlaceHolder>
<asp:Content ID="Content2" ContentPlaceHolderID="ScriptContentPlaceHolder" runat="server">
<div id="map" ></div>
<script src ="jss/Maps.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?
key=MYKEYcallback=initMap"></script>
</asp:Content>