在ASP.NET同样可以与其它编程语言一样,利用前台的Ajax技术,只是需要注意的是,后台的处理程序不再是一个aspx页面中的Page_Load,而且ASP.NET独有的“一般处理程序”.ashx,下面用一个简单的例子来说明这个问题。

如下图,一个简单到,完全可以用前台脚本完成的加法程序。这里只是为了说明问题。

首先,这个解决方案的文件结构如下图:

你首先要右击解决方案的方式,通过添加“现有项”的方式,将一个高版本的jQuery.js文件添加到你的解决方案,直接复制这个文件复制到解决方案的文件夹是没有用的,亲测。

之后,要添加一个“新建项”,这个新建项是一般处理程序.ashx,而不是一般的Web窗体.aspx

这里,将一般处理程序,命名为Calculate.ashx,代码如下,其展示给前台的东西是通过context.Response.Write完成的,用于将处理内容打印到前台。

这里首先用context.Request.Form从前台接受两个Post传递过来的参数。如果不为空,则将它们相加的结果打印到前台。

using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
     
    namespace Ajax
    {
        /// <summary>
        /// Handler1 的摘要说明
        /// </summary>
        public class Handler1 : IHttpHandler
        {
     
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";//用于设置编码
                string num1 = context.Request.Form["num1"];//如果是get方式应该用context.Request.QueryString
                string num2 = context.Request.Form["num2"];
                if (!(string.IsNullOrEmpty(num1) || string.IsNullOrEmpty(num2)))
                {
                    context.Response.Write(int.Parse(num1) + int.Parse(num2));
                }
            }
     
            public bool IsReusable//用于线程安全
            {
                get
                {
                    return false;
                }
            }
        }
    }

之后的Default.aspx完全是前台HTML+javascript的内容,从两个文本框的获取参数,将其传到Calculate.ashx里面,再将结果打印到id为result的span节点里面。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Ajax.Default" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Ajax</title>
        <script type="text/javascript" src="jquery-1.8.3.js"></script>
    </head>
    <body>
        <input type="text" id="num1" />+<input type="text" id="num2" /><button onclick="calculate()">=</button><span id="result"></span>
    </body>
    <script type="text/javascript">
        function calculate() {
            var num1 = $("#num1").val();
            var num2 = $("#num2").val();
            if (isNaN(num1) || isNaN(num2)) {
                alert("你输入的不是数!");
            }
            else {
                $.ajax({
                    type: 'post',
                    url: 'Calculate.ashx',
                    dataType: "html",
                    data: {
                        num1: num1,
                        num2: num2
                    },
                    success: function (data) {
                        $("#result").html(data);
                    },
                    error: function () {
                        alert("出错了!请稍候再试!");
                    }
                });
            }
        }
    </script>
    </html>

可以看到ASP.NET,利用jQuery与.ashx完成简单的Ajax与其它编程语言几乎没有区别,

唯一需要的是,必须将Ajax的后台处理代码写在.ashx文件,而不是.aspx中的Page_Load方法,如果.aspx没有被访问,仅传过参数进去,是不会触发Page_Load方法的。

利用jQuery与.ashx完成简单的Ajax的更多相关文章

  1. 利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法

    利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. 先来个简单的实例热热身吧. 1.无参数的方法调用 asp.net code: view plaincopy to clip ...

  2. 利用HTML5与jQuery技术创建一个简单的自动表单完成

    来源:GBin1.com 在线演示   在线下载 谷歌快速搜索自带大量自动完成插件——库中甚至还有一个附带的jQuery UI共享选项.然而今天我要寻找一个替代的解决方案.由DevBridge开发的j ...

  3. 160620、利用 jQuery UI 和 Ajax 创建可定制的 Web 界面

    如今,网站比以往更具可定制性,允许用户更改其空间,根据自己的喜好对其进行个性化.个性化的主页或仪表板页面(例如 iGoogle.MyYahoo! 和 MyAOL)日渐普及,大多数 Web 应用程序内甚 ...

  4. 利用JQUERY实现多个AJAX请求等待

    利用JQUERY实现多个AJAX请求等待 li {list-style-type:decimal;}.wiz-editor-body ol.wiz-list-level2 > li {list- ...

  5. jQuery简单的Ajax调用示例

    jQuery确实方便,下面做个简单的Ajax调用: 建立一个简单的html文件: <!DOCTYPE HTML> <html> <head> <script ...

  6. 利用jquery+iframe做一个ajax上传效果

    以下是自学it网--中级班上课笔记 网址:www.zixue.it html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict ...

  7. 利用jquery对ajax操作,详解原理(附代码)

    1. jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selecto ...

  8. 利用JQuery直接调用asp.net后台的简单方法

    利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. [WebMethod]   命名空间 1.无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod] ...

  9. 【javascript】利用jquery ajaxPrefilter防止ajax重复提交

    利用jquery ajaxPrefilter中断请求 var pendingRequests = {}; $.ajaxPrefilter(function( options, originalOpti ...

随机推荐

  1. k8s 的使用

    Kubernetes 是什么:在 Docker 技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性的工具.

  2. mybatis源码阅读心得

    第一天阅读源码及创建时序图.(第一次用prosson画时序图,挺丑..) 1.  调用 SqlSessionFactoryBuilder 对象的 build(inputStream) 方法: 2.   ...

  3. springboot整合shiro-登录认证和权限管理

    https://blog.csdn.net/ityouknow/article/details/73836159

  4. 一个基于netty的websocket聊天demo

    这里,仅仅是一个demo,模拟客户基于浏览器咨询卖家问题的场景,但是,这里的demo中,卖家不是人,是基于netty的程序(我就叫你uglyRobot吧),自动回复了客户问的问题. 项目特点如下: 1 ...

  5. Hiero_FnNukeShotExporter的解析与修改

    研究对象:Hiero中的FnNukeShotExporter脚本 研究目的:修改FnNukeShotExporter使得可以将多个TrackItem导入到一个.nk中   FnNukeShotExpo ...

  6. TensorFlow Saver的使用方法

    我们经常在训练完一个模型之后希望保存训练的结果,这些结果指的是模型的参数,以便下次迭代的训练或者用作测试.Tensorflow针对这一需求提供了Saver类. Saver类提供了向checkpoint ...

  7. 使用C#调用PI-SDK进行基于PI的开发

    一.概述 PI-SDK(Plant Information Software Develop Kit)是OSI公司提供的基于面向对象的访问PI数据库的软件开发工具包,它可以对以下数据库进行读写: ²  ...

  8. libextobjc使用

    pod 'libextobjc' #import "extobjc.h" 使用@weakify(self); @strongify(self)

  9. 黄聪:PHP如何实现延迟一定时间后自动刷新当前页面、自动跳转header("refresh:1;url={$url}");

    //1秒后自动跳转 header("refresh:1;url={$url}"); exit; //1秒后自动刷新当前页面header("refresh:1;" ...

  10. 在centos7中安装nodejs(npm )

    我当前使用的是Centos7 首先在官网查看当前最新的版本 https://nodejs.org/dist/ 我现在最新的是 https://nodejs.org/dist/latest-v10.x/ ...