一般处理程序(ashx) 与前台交互 类似与MVC开发模式,区别是可能是少个Model吧,哈哈哈,一般处理程序做了控制器的角色,我在webForm的项目里经常这样做,和一个前辈学的后面做webForm项目我就没有用webForm里自带的页面的cs文件处理数据了,就纯html不用服务区控件了,我也不知道这种方式好不好,但真的挺好用的,就是编辑html页面有点麻烦,好了,不多bb,下面直接开始(我直接用我之前项目里的代码给大家展示,节约时间)。
首先建好一般处理程序(我这里是繁体版,简体版叫一般处理程序,繁体叫泛型异常处理程序)
下面是建好的样子
建好后,前台页面怎么访问一般处理程序呢?中间肯定有联系的
所有打开一般处理程序,在上图ProcessRequest方法内写入如下代码
///context 接收参数的
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string action = context.Request.Form["action"].ToString(); //前台传入的筛选参数
System.Reflection.MethodInfo m = this.GetType().GetMethod(action);//前台传输的方式 POST
string s = ""; //接收返回前台的值
switch (action)
{
case "text1":
s= text1();
break;
case "text2":
s=text2(context);
break;
default:
break;
}
context.Response.Write(s);
context.Response.Flush();
context.Response.End();
}
//无参
public string text1() {
///实际操作代码
return "测试";
}
//有参
public string text2(HttpContext context) {
///实际操作代码
string alertString=context.Request.Form["alertString"].ToString();
return alertString;
}
后台代码就先写这么多,接下里看前台了,
html部分
<input type="button" value="無參" id="HaveGinseng" />
<br />
<input type="text" id="alertStr" />
<input type="button" value="有參" id="NoGinseng"/>
js部分
$(function(){
$("#HaveGinseng").click(function () {
$.ajax({
type: 'POST',
url: 'Handler1.ashx',
data: { action: 'text1' },
success: function (data) {
alert(data);
}, error: function () {
}
})
})
$("#NoGinseng").click(function () {
var s= $("#alertStr").val();
$.ajax({
type: 'POST',
url: 'Handler1.ashx',
data: { action: 'text2', alertString: s },
success: function (data) {
alert(data);
}, error: function () {
}
})
})
})
效果如下图 点击无参
点击有参
记录技术人生