ASP.NET WebForm也玩强类型URL调用之一:PageMethods简介

利用URL调用页面的缺点

在简单的ASP.NET或HTML页面中链接一个页面是很简单的,但是要保证链接的 页面确实存在、传递的参数都正确无误并且被正确解析却有一点不同了。下在让 我们来看一个简单的例子,你想要访问一个显示客户信息的页面,这个页面需要 名叫CustomerID的整形参数,所以你一般会以 "http://myserver/Customer.aspx?CustID=12"的URL来访问, 这初看起来没有问 题,但如果这个页面不是你创建的,你怎么知道参数的名字?你又怎么知道参数 的类型?为了得到参数的名字和类型你不得不去看代码(但你能保证代码是随时 可得到的吗?)或是看文档(文档确实存在吗?即使存在又是不是最新的呢?你 确定开发者在将参数名从CustID改为CustomerID后更新了文档吗?)。

上面说的是通过URL重定向到一个页面时的限制,下面让我们来看看这种方式 的其它限制:

你只能通过文件名引用一个页面,所以就没有编译时检查,你的错误只有在访 问网页时才能被发现,这意味着你不能保证你交付的代码是100%正确的,当你意 识到你犯了错误时已经晚了,你不得不在修正了错误后重新部署程序。

你不能确切的知道一个页面的参数或其参数集合。

你必须知道每个参数的确切的名字。

你必须以字符串的方式传递参数,这虽然可以工作但可读性却不好。

你不得不手工解析参数(在ASP.NET中通过URL传递的参数可以在 Request.QueryString中以字符串的形式得到)。

页面必须验证接收到的参数(比如验证参数是否为空、参数类型是否正确、参 数值是否在有效的范围内)。

PageMethods提供的解决方案

既然通过URL来调用页面有这么多的缺点,那有没有一种比较好的方式呢?下 面就让我们来看看本文的主角 PageMethods,PageMethods为每个页面定义了结构 化的URL,所以我们可以通过一个简洁的方式调用页面。PageMethods基于严格的 页面输入和参数绑定说明,在PageMethods中每个页面暴露出一些方法集合,以便 我们按照不同的目的调用页面。

应用PageMethods也比较简单,你只需要在页面中添加方法,然后在需要公布 的方法上添加PageMethods提供的属性,下面让我们来看一个示例,我们在 Customer页面中定义了如下方法,然后在每个方法上添加了PageMethods属性,这 些这些方法就可以被 PageMethods类库调用了,怎么样,很简单吧。

(Customer页面的代码)

时间: 2024-08-03 20:22:45

ASP.NET WebForm也玩强类型URL调用之一:PageMethods简介的相关文章

ASP.NET WebForm也玩强类型URL调用之二:PageMethods的基本使用

在熟悉了PageMethods的基本介绍后,我们来看一个简单的示例程序,这个示 例程序很简单,只有两个网页.第一个页面是客户详情编辑页面,叫做 FrtmCustomer.aspx,第二个页面叫做ListCustomer.aspx,用来显示客户列表. 虽然这个示例程序很简单,但用来说明PageMethods的基本使用却是很合适的,现 在让我们来一步步构建这个示例程序. 步骤一:创建FrmCustomer页面 首先我们需要确定安装在VS2008中的PageMethods插件是被激活的. 然后我们创建

[转自scott]ASP.NET MVC框架 (第二部分): URL路径选择

英文原文地址:http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx 翻译原文地址:http://blog.joycode.com/scottgu/archive/2007/12/04/112249.aspx 上个月,我发表了我要撰写的系列贴子中的第一篇,这些帖子将讨论我们正在开发的新ASP.NET MVC框架.这个系列的第一个贴子建造了一个简单的电子商务产品列

VS2005和ASP.NET2.0中使用强类型数据

asp.net|数据 一. 简介 作为开发人员,当我们在学习新技术时,例子可能是我们最大的敌人.而教程往往设计得易于理解,但是同时,它们常常加固了懒惰,低效性,甚至于危险的编码习惯.再也没有比ADO.NET示例更能说明问题的了.在本文中,我们将准备分析一下强类型对象对于你的数据库开发的意义以及为什么在没有例子的情况下你应该在应用程序中尽量使用强类型对象. 具体地说,我们将分析怎样在Visual Studio 2005中创建和使用强类型DataSet.正如本文所探讨的,相对于其它可选的弱类型化的数

asp.net 2.0中的url映射

asp.net 介绍 url映射是asp.net 2.0的一个新的特性,它可以让开发人员把一个页映射到另一个url上.如果一个url请求过来,程序会自动把它重新映射到服务端.例如,如果你在程序中配置了把~/Beverages.aspx映射到了~/ProductsByCategory.aspx?CategoryID=1&CategoryName=Beverages,那么当用户在浏览器中输入了http://YourSite.com/Beverages.aspx,服务器会接收后会自动的转到http:/

使用ASP.NET Web服务代理的URL行为属性

asp.net|web|web服务 使用ASP.NET Web服务代理的URL行为属性  郑佐 2005-4-6           在vs.net里调用asp.net web service的时候,默认生成的代理类的URL行为是使用静态值,如果web 服务进行转移,那就有可能会出现不能访问的情况,需要对Web服务重新引用生成新的代理类,这对程序部署带来许多不便,解决办法就是设置URL行为使用动态值,对于许多人没有去关注所以可能都不知道有这一项功能,包括我以前的同事,因此写了这篇文章,对一些朋友

ASP.NET WebForm中<%=%>与<%#%>的区别

 这篇文章主要介绍了ASP.NET WebForm中<%=%>与<%#%>的区别,需要的朋友可以参考下     <%=%>相当于Response.Write(),是输出变量的值 <%#%>专门用于数据绑定,可以绑定一些变量或者数据源中的信息,中间绑定是数据源的条目,若想让它起作用,必须调用DataBind()方法

Yale CAS + .net Client 实现 SSO(3)--实现 ASP.NET WebForm Client

原文地址: http://www.cnblogs.com/zhenyulu/archive/2013/01/22/2870936.html 第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 第四部分:实现基于数据库的身份验证 第五部分:扩展基于数据库的身份验证 第六部分:自定义登录页面 第三部分:实现 ASP.NET WebForm Client 1. 下载.NET CAS client. .NET CAS Client

ASP.NET配合jQuery解决跨域调用的问题_实用技巧

一. 使用JSONp方式调用 不做详细讲解,可以参考jq文档<jQuery 1.10.3 在线手册> 二. 服务端配置 修改Web.config 文件 <system.webServer> <modules runAllManagedModulesForAllRequests="true"></modules> <httpProtocol> <customHeaders> <add name="Ac

asp.net中jquery $.ajax实现数据调用实现

最近在ASP.NET中做了一个AJAX调用 : Client端先从ASP.NET Server后台取到一个页面模板,然后在页面初始化时再从Server中取一些相关数据以实现页面模板的动态显示.具体实现为: 1)      Client向 ASP.NET后台发送HTTP GET 请示 2)      后台给Client发送一个HTML模板,同时在内存中存储一个XML  String  (包含页面模板动态显示所需的数据) 3)      Client在初始化页面时,发送AJAX请求,拿到XML St