在ASP.NET中实现AJAX(4)(转)
来源:互联网 发布:打开软件显示乱码 编辑:程序博客网 时间:2024/06/03 16:33
在ASP.NET中实现AJAX(4)(转)
自定义转换器
我们已经看到,Ajax .NET包装器能够处理很多不同的.NET类型。但是除了大量.NET类和内建类型以外,包装器对不能正确返回的其他类型仅仅调用ToString()。为了避免这种情况,Ajax .NET包装器允许开发人员创建对象转换器,用于在服务器和客户机之间平滑传递复杂对象。
其他事项
在其他类中注册函数
上面的例子中,我们的服务器端函数都放在执行页面背后的代码中。但是,没有理由不能把这些函数放在单独的类文件中。要记住,包装器的工作方式是在指定类中发现所有带Ajax.AjaxMethod的方法。需要的类通过第二个脚本标签指定。使用Ajax.Utility.RegisterTypeForAjax,我们可以指定需要的任何类。比如,将我们的服务器端函数作为单独的类是合情合理的:
Public Class AjaxFunctions
<Ajax.AjaxMethod()> _
Public Function Validate(username As String, password As String) As Boolean
'do something
'Return something
End Function
End Class
通过指定类的类型而不是页面就可以让Ajax包装器创建代理:
private void Page_Load(object sender, EventArgs e){
Ajax.Utility.RegisterTypeForAjax(typeof(AjaxFunctions));
//...
}
要记住,客户端代理的名称是<ClassName>.<ServerSideFunctionName>。因此,如果ServerSideAdd函数放在上面虚构的AjaxFunctions类中,客户端调用就应该是: AjaxFunctions.ServerSideAdd(1,2)。
代理到底是如何工作的
Ajax工具生成的第二个脚本标签(也可以手工插入)传递了页面的名称空间、类名和程序集。根据这些信息,Ajax.PageHandlerFactory就能够使用反射得到具有特定属性的任何函数的详细信息。显然,处理函数查找具有AjaxMethod属性的函数并得到它们的签名(返回类型、名称和参数),从能够创建必要的客户端代理。具体而言,包装器创建一个和类同名的JavaScript对象,该对象提供代理。换句话说,给定一个带有Ajax ServerSideAdd方法的服务器端类AjaxFunctions,我们就会得到公开ServerSideAdd函数的AjaxFunction JavaScript对象。如果将浏览器指向第二个脚本标签的路径就会看到这种动作。
返回Unicode字符
Ajax .NET包装器能够从服务器向客户机返回Unicode字符。为此,数据在返回之前必须在服务器上用html编码。比如:
[Ajax.AjaxMethod]
public string Test1(string name, string email, string comment){
string html = "";
html += "Hello " + name + "<br>";
html += "Thank you for your comment <b>";
html += System.Web.HttpUtility.HtmlEncode(comment);
html += "</b>.";
return html;
}
- 在ASP.NET中实现AJAX(4)(转)
- 在ASP.NET中实现AJAX(4)
- 在ASP.NET中实现AJAX (转)
- 在ASP.NET中实现AJAX(5)(转)
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX(3)
- 在ASP.NET中实现AJAX(5)
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- CSS overflow
- 在ASP.NET中实现AJAX(3)(转载)
- 插入与删除Excel表格的单元格、行和列
- Java 程序中的多线程
- 使用javascript动态改变当前行的显示样式
- 在ASP.NET中实现AJAX(4)(转)
- JavaScript的继承!
- 多种方式实现WPS表格单元格的合并
- 在ASP.NET中实现AJAX(5)(转)
- jsp怎么导出Excel表
- IDA简易教程
- 客户端平台工作整理及总结
- 暴风影音生成音乐网页分享给MM
- FCS视频技术实例