aspx页面前端使用js 调用aspx.cs后台的方法,不回传

本次使用 Ajax.dll,AjaxPro.dll 两个类库

1.首先添加引用:Ajax.dll,AjaxPro.dll 文件在 Libiary 目录下

2.配置 WebConfig 属性

将 下面2行  放在 httpHandlers 节点里面, 如下

 <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
 <add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
        

例如:

 <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>

        <-- 这两行 注册类库使用, 标记 相关文件的解析 !-->
        <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
        <add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>

</httpHandlers>

3.为页面使用做准备, *.aspx.cs 文件 里做 注册
     AddUser 是 网页的名称, 也就是类名

 Ajax.Utility.RegisterTypeForAjax(typeof(AddUser));

此声明 一定要在 IsPostBack 前面, 因为每一次页面刷新 都需要,
  所以一般放在 Page_Load 事件的第一句话
 例如:

 public partial class AddUser : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //表示当前 注册 可以调用 ajax 的类 AddUser
            Ajax.Utility.RegisterTypeForAjax(typeof(AddUser));
            if (!IsPostBack)
            {

            }

        }
    }

4. 标记 要使用Ajax 调用 的方法
  允许ajax 的 调用的 类, 必须是 public ,而且需要 做 声明标记

 [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]

例如:

[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
        public int addCategory_click(string cateName, string empId)
        {
            try
            {
                //根据输入的 参数 不同, 模拟返回 一个随机数表示 自增列的Id
                int categoryId = cateName.Length+empId.Length;
                if (categoryId==2)
                {
                     //如果输入的是 用户名和密码长度 等于2, 即返回0,
                     //说明 进入到了  本方法
                    return 0;
                }
                //返回随机数 1到 categoryId 的长度, 结果大于0
                  categoryId = new Random().Next(1, categoryId);
                return categoryId;
            }
            catch
            {
                return 0;
            }

        }

5.页面上的使用

先引入 jquery,当然是为了下面操作使用  btn_add_click 方法:

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
function btn_add_click() {
            var loginname = $("#txt_loginname").val();
            var pwd = $("#txt_pwd").val();

            // 这里可以传入多个参数 或者 不传参数
            // 调用方式: 当前 类名.方法名
            AddUser.addCategory_click(loginname, pwd, function (data) {

                var cateId = parseInt(data.value);  //返回 int类型
                // alert(cateId);
                if (cateId == 0) {
                    //跳转
                    alert("输入2位");
                } else {
                    alert("添加成功");
                }
            });

        }

网页Body部分

<body>
    <form id="form1" runat="server">
    <div  style=" width:500px; border:1px solid  pink; margin:0 auto;">
              <table>

              <tr><td>用户名:</td><td> <input type="text" id="txt_loginname" value="" /></td></tr>
              <tr><td>密码:</td><td><input type="password" id="txt_pwd" value="" /></td></tr>
              <tr><td colspan="2"><input type="button" value="添加" onclick="btn_add_click();" name="btn_add" id="btn_add" /></td></tr>
              </table>
    </div>
    </form>
</body>

接下来是 发放源代码:    源代码下载

时间: 2024-10-05 04:01:36

aspx页面前端使用js 调用aspx.cs后台的方法,不回传的相关文章

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据(转)

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %> <!DOCTYPE htm

JS调用asp.net后台方法:PageMethods

先帮朋友宣传一下程序人生(http://www.manong123.com)的网站,里面都是开发感悟,开发人员创业,支持一下吧~ 原来是通过PageMethods来实现的. 举个列子: Default.aspx 里代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据

WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//

Js调用asp.net后台代码

方法一:         1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.getElementById("btn1").click() 或者document.getElementById("btn1").onclick() 3.在前台或后台调用js函数,激发click事件,等于访问后台c#函数: 方法一:直接使用<%=%>调用 前台方法: <script type=&

js调用asp.net 后台属性值

后台代码: public string title = "js调用后台属性值"; public void getContent() { return title; } 前台代码: var title = "<%=getContent()%>"; alert(title);

js 调用父窗口中的方法

window.open调用父窗口中的方法 回调函数: function fun9(ex){ alert(ex); } 调用语句: window.open("RoomSelecter.htm?Ran"+Math.random(), "RoomSelecter"); 窗口页面中调用父窗口中的语句: if (window.opener && window.opener.fun9) { window.opener.fun9("ADF");

JQuery直接调用asp.net后台WebMethod方法

利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法.[WebMethod]   命名空间 1.无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod]的声明后台<C#>: using System.Web.Script.Services; [WebMethod] public static string SayHello() { return "Hello Ajax!"; } 前台<JQuery>: $(funct

JQuery直接调用asp.net后台WebMethod方法(转)

转自  http://blog.csdn.net/handsometone1982/article/details/7684894 利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法.[WebMethod]   命名空间 1.无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod]的声明后台<C#>: [csharp] view plaincopy using System.Web.Script.Services; [WebMethod] pub

HTML页面生成ASPX页面

这个功能是在DTcms Demo网站里面扣出来的一个小功能,他的Demo网站里面可以在HTML写好所有的代码,然后生成一下ASPX页面,就可以访问了.具体的流程下篇文章来分析.这篇文章主要是讲HTML如何生成ASPX页面. 原理: 我们先读取HTML页面,然后拼接字符串(组成ASPX页面的结构的字符串),然后创建ASPX页面把字符串利用File操作写进ASPX页面. 例如: 我们要生成的ASPX页面的结构大致如下(截图是最简单的,没有涉及数据的交互,只是静态字符串) 静态页面: 生成ASPX页面