Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在usercontrol中将服务器端数据获取到客户端脚本的最佳方法_Javascript_Asp.net_Ajax_Json - Fatal编程技术网

Javascript 在usercontrol中将服务器端数据获取到客户端脚本的最佳方法

Javascript 在usercontrol中将服务器端数据获取到客户端脚本的最佳方法,javascript,asp.net,ajax,json,Javascript,Asp.net,Ajax,Json,我开始构建一个UserControl,它将出现在一些SharePoint 2007页面布局上。UserControl的目的是根据页面名称显示多个位置的地图。因此,它需要做的是获取页面名称,查询SharePoint列表中的相关地理坐标集合,然后将它们加载到地图上。除了对元素的简单修改和学术性的jqueryajax调用之外,我从未真正完成过太多客户端脚本编写。因此,我试图了解传递数据的常见做法 我在网上看到很多关于AJAX调用页面方法的东西,这是因为这是一个用户控件。另一种选择是对web服务的aja

我开始构建一个UserControl,它将出现在一些SharePoint 2007页面布局上。UserControl的目的是根据页面名称显示多个位置的地图。因此,它需要做的是获取页面名称,查询SharePoint列表中的相关地理坐标集合,然后将它们加载到地图上。除了对元素的简单修改和学术性的jqueryajax调用之外,我从未真正完成过太多客户端脚本编写。因此,我试图了解传递数据的常见做法

我在网上看到很多关于AJAX调用页面方法的东西,这是因为这是一个用户控件。另一种选择是对web服务的ajax调用。我以前构建过web服务,但都是为了供.NET客户端使用。设置脚本调用.net web服务的方式仍然是这样吗?那么安全呢?如果我只想让我的页面或网站调用web服务,而不是普通公众,该怎么办


在这种情况下,我甚至不确定是否需要服务。我可以在初始请求期间检索数据并将其放在页面上吗?类似于json将代码中的坐标集合序列化并将其写入隐藏字段以便javascript拾取?

有几种方法可以将值从usercontrol传递到javascript

脚本控制:

允许您为web控件包含客户端行为。请参阅下面的一些链接:


RegisterStartupScript和RegisterClientScriptBlock:

允许您在页面上包含客户端脚本块。请参阅下面的一些链接:

HtmlGenericControl:

没有什么能阻止您以友好方式创建脚本标记并将所有javascript逻辑插入
InnerHtml
属性。这可以在最初的请求期间完成

例如:

HtmlGenericControl script = new HtmlGenericControl("script");
script.ID = "script";
script.Attributes.Add("type", "text/javascript");
script.InnerHtml = "alert('Hey');";

//Insert the script into some asp:Panel
panel.Controls.Add(script);

4年后读到这篇文章,我可以告诉我过去的自己:

  • 是的,只需在页面上包含json,隐藏以便JS拾取。但请注意,这会增加客户端浏览器必须下载的响应的大小。这不仅需要更多的时间,而且会消耗更多移动用户昂贵的数据。如果有很多数据,有些可能没有使用,那么根据需要从web服务检索数据可能是更好的选择

  • REST服务是响应AJAX请求的常见解决方案。如果您想允许匿名用户的客户端脚本访问数据,那么您无法做很多事情来保护匿名用户的数据


  • 我从来没有看到过这个答案,但是谢谢你抽出时间。这些似乎是包含javascript的工具,也是一个功能强大的工具,但我对让javascript能够访问数据感兴趣。