问题描述
在Web.config中的配置如下<httpHandlers><addverb="*"path="*.ashx"type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/></httpHandlers>
其中verb为“*”表示POST,GET方式想请问如何设置只有其中一个方式呢?
解决方案
解决方案二:
在后台cs文件里需要定义方法,应用实例如下:1、首先下载AjaxPro组件。并将AjaxPro.dll引用到网站(或项目)。2、修改Web.config。在<system.web>元素中添加以下代码。<configuration><system.web><httpHandlers><!--Registertheajaxhandler--><addverb="*"path="ajaxpro/*.ashx"type="AjaxPro.AjaxHandlerFactory,AjaxPro"/></httpHandlers></system.web></configuration>3、对AjaxPro在页Page_Load事件中进行运行时注册。如:protectedvoidPage_Load(objectsender,EventArgse){AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));//这的_Default是指页面类的类名。如是放在命名空间,则需要写上完整的命名空间(如:namespaces._Default)}4、创建服务器端方法。只要给一个方法加上[AjaxPro.AjaxMethod]标记,该方法就变成一个AjaxPro可进行影射调用的方法。如下:[AjaxPro.AjaxMethod]publicstringgetValue(inta,intb){//该方法我们将实现从客户端传入两个数,在服务器端相加计算后返回到客户端。returnConvert.ToString(a+b);}5、客户端调用。<scriptlanguage="javascript">functiongetValue(){_Default.getValue(1,2,getGroups_callback);//该处即调用服务器端的_Default.getValue方法。这在里边需要指定个回调函数,以接受服务器端处理完后返回客户端结果。form1.TextBox1.value="123";}//这个方法用户接受并处理服务器端返回的结果。functiongetGroups_callback(response){vardt=response.value;alert(dt);}</script>到这一个简单,但已是一个完整的AjaxPro的使用了。当然AjaxPro还可做很多更实用的,更强大的功能。这个仅做个抛砖引玉。其它的改天整理后再放上来。请各位注意,Ajax.net实际有AjaxPro.dll和Ajax.dll两个版本,这两个版本使用上虽然差不多,但还是有区别的,主要的区别在下面两点(1)web.config配置文件不一样Ajax.dll的配置文件写法为<addverb="POST,GET"path="ajax/*.ashx"type="Ajax.PageHandlerFactory,Ajax"/>AjaxPro.dll的配置文件写法为<addverb="*"path="ajaxpro/*.ashx"type="AjaxPro.AjaxHandlerFactory,AjaxPro"/>(2)调用服务器方法的时候方式不一样,有很多朋友就是因为这个原因,发现命名空间找不到或者对象未定义引用Ajax.dll的时候,调用服务器方法不要加命名空间,应用AjaxPro.dll的时候,调用服务器方法需要加命名空间例如当页面设置为这种设置的时候<%@Pagelanguage="c#"Codebehind="Test.aspx.cs"AutoEventWireup="false"Inherits="Web.Test"%>客户端调用方式Ajax.dll为varresponse=Test.GetServerMethod();alert(response.value);AjaxPro.dll为varresponse=Web.Test.GetServerMethod();alert(response.value);另外AjaxPro官方最新测试版本,在生成客户端脚本的时候会出现空指针错误,所以请大家不要试用这种版本,尽量试用稳定版本