当前位置: 首页 > news >正文

jQuery Ajax无刷新操作

下面是“无刷新登录”的例子,采用Ashx+jQuery Ajax实现。

//后台实例代码 ashx文件(可替换为从数据库中读取)  
public void ProcessRequest(HttpContext context)  
{  
    context.Response.ContentType = "text/plain";  
    //context.Response.Write("Hello World");  
  
    string name = context.Request.Params["name"].ToString().Trim();  
    if ("china".Equals(name))  
    {  
        context.Response.Write("1");//1标志login success  
    }  
    else  
    {  
        context.Response.Write("0");//0标志login fail  
    }  
}  
//前台实例代码 aspx文件  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <title></title>  
   
    <script src="js/jquery-1.4.2.js" type="text/javascript"></script>  
   
    <script type="text/javascript">  
        $(function() {  
            $("#test").live("click", function() {  
                //alert(0);  
                $.ajax({  
                    type: 'POST',  
                    url: 'Handler1.ashx',  
                    data: { "name": $("#name").val() },  
                    success: function(data) {  
                        if (1 == data)  
                            alert('login success');  
                        else  
                            alert('login fail');  
                    }  
                });  
            });  
        });  
    </script>  
   
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <input type="text" name="name" id="name" />  
        <input type="button" name="test" id="test" value="validate" />  
    </div>  
    </form>  
</body>  
</html>  

分别在前台aspx页面和后台ashx页面中输入如上代码,就实现了一个超级简单的Ajax登录,很简单吧?

——————————————————————————————————————————————————————————————————————

下面提供一个"点赞"的实例代码,用ASP.NET MVC4+jQuery Ajax实现。

Model:

namespace MvcAjaxAdd.Models  
{  
    public class ClickCountModel  
    {  
        [Key]  
        [DatabaseGeneratedAttribute(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]  
        public int ID { get; set; }  
  
        public string URL { get; set; }  
  
        public int? Num { get; set; }  
    }  
}  

View:

@{  
    ViewBag.Title = "Index";  
}  
@model MvcAjaxAdd.Models.ClickCountModel  
<script src="~/Scripts/jquery-1.7.1.js" type="text/javascript"></script>  
<script type="text/javascript">  
    $(function () {  
        var obj = {  
            "num": $("#lblnum").text(),  
            "url": window.location.pathname//获取/Home/Index  
        };  
        $("#addnum").click(function () {  
            $.ajax({  
                type: 'POST',  
                url: '/Home/ClickGood',  
                data: obj,  
                success: function (data) {  
                    $("#lblnum").text(data.Num);  
                    //其它操作,比如每个登录用户只能点一次,按钮禁用等  
                }  
            });  
        });  
    });  
</script>  
<div id="addnum" style="width: 70px; height: 70px; background-color: #FF9900">  
    <div align="center" style="margin-top: 10px;">  
        <label style="color: White; font-size: 20pt;"></label></div>  
    <div align="center">  
        <label id="lblnum" style="color: White; font-size: 10pt;">  
            @Model.Num</label></div>  
</div>  

Controller:

namespace MvcAjaxAdd.Controllers  
{  
    public class HomeController : Controller  
    {  
        private ClickCountContext db = new ClickCountContext();  
  
        public ActionResult Index()  
        {  
            ClickCountModel ClickCountModel = db.ClickCountModels.FirstOrDefault(x => x.URL == "/");  
            return View(ClickCountModel);  
        }  
  
        [HttpPost]  
        public JsonResult ClickGood(ClickCountModel ClickCountModel)  
        {  
            ClickCountModel newClickCountModel = db.ClickCountModels.FirstOrDefault(x => x.URL == ClickCountModel.URL);  
            newClickCountModel.Num++;//数量+1  
            db.SaveChanges();  
            return Json(newClickCountModel);  
        }  
    }  
}  
效果图:

 

 

相关文章:

  • JavaScript里的数组转化新方法Array.From
  • 我的业余项目总结
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 如何获取drawable目录下的图片绝对路径
  • iOS开发多线程篇 09 —NSOperation简单介绍
  • nb
  • PHP字符串操作相关
  • dtrace 手册
  • Nginxt rewrite企业应用实例
  • HDU1863(最小生成树)
  • C++ 类的多态五(多态的语法本质分析)
  • C++ 抽象类一(多继承与赋值兼容性原则)
  • Mysql 备份与恢复
  • php 审核管理
  • 《Android深度探索》第八章心得体会
  • 分享一款快速APP功能测试工具
  • 【刷算法】从上往下打印二叉树
  • 【刷算法】求1+2+3+...+n
  • Android系统模拟器绘制实现概述
  • conda常用的命令
  • JavaScript服务器推送技术之 WebSocket
  • Promise初体验
  • Vue ES6 Jade Scss Webpack Gulp
  • 大整数乘法-表格法
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 仿天猫超市收藏抛物线动画工具库
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 精彩代码 vue.js
  • 我建了一个叫Hello World的项目
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • hi-nginx-1.3.4编译安装
  • 整理一些计算机基础知识!
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #define 用法
  • #define与typedef区别
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • $.ajax中的eval及dataType
  • (1)STL算法之遍历容器
  • (Oracle)SQL优化技巧(一):分页查询
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (论文阅读30/100)Convolutional Pose Machines
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)【Hibernate总结系列】使用举例
  • .NET MVC 验证码
  • .net 生成二级域名
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @SuppressWarnings注解
  • @Validated和@Valid校验参数区别