前言本技术完全开源请各位兄弟随便修改使用但是必须能够保留相关版权的说明我的小小技术能在您的项目中使用是我的光荣希望不要破灭了我仅存的自豪感衷心感谢在此鞠躬!
本技术主要基 提供页面的javascript直接通过ajax调用服务端的c#方法完全打通javascript往的最后防线
本技术实在开发pixysoftframeworkneobesjsons中用到的一项技术而jsons框架主要负责面向异构网站提供基于jsons的数据库访问
技术演示aspx页面简介
<%@ Page Language=C# AutoEventWireup=true CodeFile=Defaultaspxcs Inherits=_Default %>
<%@ Register Assembly=PixysoftAjax Namespace=PixysoftFrameworkNoebeJsonsWebControls
TagPrefix=cc %>
<!DOCTYPE html PUBLIC //WC//DTD XHTML Transitional//EN transitionaldtd>
<html xmlns=>
<head runat=server>
<title>pixysoftajax</title>
<script type=text/javascript>
var code=;
function ServerMethodCallback(value)
{
code = value;
MessageinnerText = value;
}
</script>
</head>
<body>
<form id=form runat=server>
<div>
<cc:PixysoftAjaxBase ID=PixysoftAjaxBase runat=server />
<br />
result: <span id=Message></span>
<input type=button value=让我们回调吧! onclick=ServerMethod(code) id=Button />
</div>
</form>
</body>
</html>
后台代码简介
using System;
using SystemData;
using SystemConfiguration;
using SystemWeb;
using SystemWebSecurity;
using SystemWebUI;
using SystemWebUIWebControls;
using SystemWebUIWebControlsWebParts;
using SystemWebUIHtmlControls;
public partial class _Default : SystemWebUIPage
{
protected void Page_Load(object sender EventArgs e)
{
}
public int ServerMethod(int value)
{
return value * ;
}
}
页面有个htmlbutton 点击会激活 ServerMethod这个方法
后台会处理这个方法回调页面的ServerMethodCallback同时把运算结果传入
运行结果就是不断结算 code *并显示在页面的<span id=Message>里面
如果服务端的方法不需要返回参数那么可以不写ServerMethodCallback
教程说明
首先需要在服务端声明一个public的方法 例如public int ServerMethod(int value); 可以无返回值
在javascript里面直接使用服务端声明的方法例如onclick=ServerMethod(code) 区分大小写
如果服务端方法有返回值那么需要在javasccript声明一个回调方法命名规则是服务端方法+Callback例如function ServerMethodCallback(value)
完成
注意事项
非常悲哀调用过程不支持session / cache 等就是完全的无状态这是由于的一个bug造成的具体
ckID=
同样悲哀调用的方法不支持直接执行只能通过event激活例如一下是个无效调用
<script>
int code = ;
ServerMethod(code);
</script>
这是由于页面没有完全加载完毕而调用的问题不会报错但是没有效果
相关技术介绍
本技术主要使用了的回调技术ICallbackEventHandler
结合了反射原理
具体就不点明了各位大侠看看源码就懂了
源码