javascript – 如何从jQuery对象文字中正确调用服务器端ASP.NET并将数据返回到jQuery
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何从jQuery对象文字中正确调用服务器端ASP.NET并将数据返回到jQuery,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3123字,纯文字阅读大概需要5分钟。
内容图文
这个问题与我以前的问题密切相关:How can I retrieve JSONdata from ASP.NET and send it to jQuery? (implementing FullCalendar).
我正在尝试在ASP.NET中设置以下object literal:
$(document).ready(function () {
$('#calendar').fullCalendar({
events: GetEvents(start, end) //<-- This line is invalid
}
}
上面无效行的右侧应包含对JSON数据的引用.
由于我认为这是一个客户端到服务器到客户端的呼叫,如果我以错误的方式执行此操作,我担心会出现一个重大的安全问题.
我找到了a tutorial on calling a server-side method from javascript(看起来过时了)但是有没有一种方法可以在ASP.NET中动态地将jQuery对象文字绑定到数据集?
例如.如何在ASP.NET中创建只能由具有适当权限的登录用户调用的响应(每个用户只能在日历中编辑0 – *特定的用户绑定事件)?如何将该响应返回给jQuery对象文字?
编辑:
根据要求,这里是GetEvents(start,end)方法的一些伪代码:
public JSONData GetEvents(DateTime start, DateTime end) {
User user = HttpContext.Current.User;
if(user.Identity.IsAuthenticated && IsValidTimePeriod(start, end)) {
List<Event> events = EntityFrameWorkService.GetEventsFromDataBase(user, start, end);
JSONData result = ConvertEventDataToJSON(events);
return result;
}
return null;
}
JSONData是应该返回的任何类型的JSON数据对象类型,EntityFrameWorkService是一个虚构的类,它在GUI和Entity Framework之间具有服务方法.
解决方法:
好的,根据您在问题中包含的链接,您似乎正在尝试使用页面方法从服务器向客户端获取数据.这只是将数据从服务器传递到客户端的一种可能方式,但我会在这个答案中坚持使用它.
实现页面方法时需要记住一些重要的事项:
>该方法必须是公共的和静态的.这意味着您无法以与回发时相同的方式访问页面中的实例控件.
>必须使用[WebMethod]属性修饰该方法.
>为了获得正确的javascript方法来调用页面方法,你必须在页面上有一个ScriptManager对象(不是严格来说,你可以使用常规的ajax调用它们,但是PageMethods对象是由脚本管理器添加的) :
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePageMethods="True">
</asp:ScriptManager>
>从脚本调用方法时,请使用PageMethods对象.如果您的服务器端Web方法是:
[WebMethod]
public static string Echo(string inputValue)
{
return inputValue.ToUpperInvariant();
}
然后你可以这样调用(javascript):
function echoSucceed(data) {
alert(data);
}
function echoError(data) {
alert('fail');
}
PageMethods.Echo("conver this to upper case", echoSucceed, echoError);
请注意,我们将函数引用传递给javascript PageMethods.Echo(…).根据页面方法调用是成功还是失败,将调用其中一个函数.
但是你问我的问题呢?
首先,在后面的代码中创建页面方法.请注意,响应将自动序列化和反序列化,以便您可以返回页面方法,例如事件列表:
[WebMethod]
public List<Event> GetEvents(DateTime start, DateTime end) { ... }
此列表将成为接收端的阵列.
接下来,创建一个帮助您调用页面方法的帮助程序javascript函数.像这样的东西:
function getEvents(start, end) {
var results;
PageMethods.GetEvents(start, end, function (data) { results = data; }, function(data) { alert('Error while fetching events'); });
return results;
}
然后,最后,调用方法并将结果传递给您的日历.
编辑:一些其他选项(页面方法的替代方法):
>普通的旧网络服务(.asmx)
> WCF服务(.svc)
>通用处理程序(.ashx),或者更一般地说是任何自定义HttpHandler,请参阅here
> Web API(镇上的新孩子,见here)
有关如何使用这些内容的具体细节取决于您选择的具体内容.通过使用适当的关键字组合来搜索网页,可以轻松找到每个教程.
内容总结
以上是互联网集市为您收集整理的javascript – 如何从jQuery对象文字中正确调用服务器端ASP.NET并将数据返回到jQuery全部内容,希望文章能够帮你解决javascript – 如何从jQuery对象文字中正确调用服务器端ASP.NET并将数据返回到jQuery所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。