.ashx是怎么被调用的?

JavaScript033

.ashx是怎么被调用的?,第1张

ashx文件是一般处理文件,你可以理解为是在服务器端运行的文件。我一般都是用异步处理的时候调用ashx文件,很方便。你可以在前台页面或这个页面引用的JS文件中查找这个ashx文件的名称,然后顺藤摸瓜就可以啦

写一个扩展jquery的js文件:

function($){

$.excuteProcedure = function(pName,parasArr,callback){

$.ajax({

data:{procedureName:pName,procedureParas:parasArr}.

url:'excuteProcedure.ashx',

datatype:'json',

success:function(data,status){

if(callback){

callback(data,status)

}

}

})

}

}(jQuery)

然后在excuteProcedure.ashx中取:

string pName = Request.Paras["procedureName"]

string[] paras = Request.Paras.getValues("procedureParas")

然后用oledb执行呗:

command.Text = pName

command.Type = CommandType.StoreProcedure

command.Parameters.Add(para1)

。。。

command.excute()

js调用上面的函数:

$.excuteProcudure('Pro_Test_Js_Excute',[1,2,'xxx'],function(data){

if(data &&data.error){

alert('调用失败:' + data.error)

}

else{

alert('既然成功了,那我接着执行下面的!')

//这就是下面的内容?

}

})

简单调用:

无参数,无回传:

$.excuteProcedure('存储过程名称')

以上是思路,已经很具体了~~

用jquery的ajax就可以的,实例如下:

<script src="Jquery/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function() {

$("#btnOK").click(function() {

$.ajax({

//要用post方式

type: "POST",

//方法所在页面和方法名

url: "AjaxPage.aspx/ABC",

data: "{abc:111}", //带参数的,参数名称abc,参数“111”

//date:"{}",//没有参数的初始化

contentType: "application/jsoncharset=utf-8",

dataType: "json",

success: function(data) {

//返回的数据用data.d获取内容

alert(data.d)

}

})

})

})

</script>

<body>

<form id="form1" runat="server">

<asp:Button ID="btnOK" runat="server" Text="ShowText" />

</form>

</body>

后台:引入using System.Web.Services

[WebMethod]

public static string ABC(string abc) //带参数的方法

{

return abc

}

webconfig下得有如下配置节:

<httpModules>

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

</httpModules>

这个在vs2008里是可行的,版本低的话,可能不能直接这么调用