Ajax怎么实现评论中顶和踩功能

介绍

本篇内容主要讲解“Ajax怎么实现评论中顶和踩功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ajax怎么实现评论中顶和踩功能”吧!

效果大致如下:

 Ajax怎么实现评论中顶和踩功能

javascript这块使用jquery。新建一个Asp.net web项目,使用NuGet获取jquery最新版。

 Ajax怎么实现评论中顶和踩功能

数据库方面使用Nhibernate,用安装包Nhibernate引用。

数据库是用的PostgreSQL,安装包Npgsql把驱动装上。我这里偷个懒,数据库名,用户名和密码都是ajaxDemo了。

创建数据库:

代码如下:


创建数据库“ajaxDemo"
,老板=癮jaxDemo"
,,,,,,编码=& # 39;use utf8 # 39;
,,,,,,表空间=pg_default
,,,,,,LC_COLLATE=& # 39;中文(简体)_People& # 39; & # 39;共和国China.936& # 39;
,,,,,,LC_CTYPE=& # 39;中文(简体)_People& # 39; & # 39;共和国China.936& # 39;
,,,,,,连接限制=1;

NHiberate配置文件:

代码如下:


& lt; ?xml version=?.0”;编码=皍tf-8" ?在

& lt; hibernate-configuration xmlns=皍rn: nhibernate -配置- 2.2“;比;
,& lt; session-factory>
,,,& lt;属性名=癱onnection.driver_class"祝辞NHibernate.Driver.NpgsqlDriver
,,,& lt;属性名=癱onnection.connection_string"祝辞
,,,,,服务器=localhost;数据库=ajaxDemo;用户ID=ajaxDemo;密码=ajaxDemo;
,,,& lt;/property>
,,,& lt;属性名=癲ialect"祝辞NHibernate.Dialect.PostgreSQLDialect
,,,& lt;映射组装=癆jaxDemo"祝辞& lt;/mapping>
,& lt;/session-factory>
& lt;/hibernate-configuration>

顺带说一句NHiberate的配置模板是错的,改初始目录为数据库。

我没有使用NHiberate的一对多映射(主要是觉得用不上),实体类有两个信息和审核。

代码如下:


使用系统;使用System.Collections.Generic
;使用来
;使用包含
;使用Iesi.Collections.Generic
,

AjaxDemo名称空间。模态
{
,,,公开课信息
,,,{
,,,,,,,公共虚拟int Id{得到;设置;}
,,,,,,,公共虚拟字符串内容{得到;设置;}
,,,}
},

代码如下:


使用系统;使用System.Collections.Generic
;使用来
;使用包含
,

AjaxDemo名称空间。模态
{
,,,公共类评论
,,,{
,,,,,,,公共虚拟int Id{得到;设置;}
,,,,,,,公共虚拟int InfoId{得到;设置;}
,,,,,,,公共虚拟字符串内容{得到;设置;}
,,,,,,,公共虚拟int支持{得到;设置;}
,,,,,,,公共虚拟int反对{得到;设置;}
,,,}
}

业务层是对应的代码就不贴了,主要就是添加和修改功能。

准备工作到此基本完成了,现在来实现我们所需要的功能。

Ajax最大的特点是可以仅向服务器发送并取回必需的数据,它使用肥皂或其它一些基于XML或Json的页面服务接口,并在客户端采用JavaScript处理来自服务器的响应。因为服务器和客户端之间的数据交换的数据大量减少,结果我们就能看到回应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。

也就是我们需要两个部分的东西:

1。客户端的处理,基于JQuery

2。服务器端的处理,我选用的一般处理程序(ashx),因为返回的数据很简单,所以没有XML和Json。

先来看服务端,我们需要获取用户顶或踩的是哪条评论,所以需要id,顶和踩的处理我写在一起,所以还需要一个参数来区分。

获取到两个参数以后先根据状态判断是踩还是顶,然后更新相应条目,服务端返回一个代表当前对应数目的数字。

ChangeState。ashx:

代码如下:


使用系统;使用System.Collections.Generic
;使用来
;使用包含
;使用AjaxDemo.BLL
;使用AjaxDemo.Modal
,

AjaxDemo名称空间。Ajax
{
,,,///& lt; summary>
,,,///返回更新以后的数目
,,,///& lt;/summary>
,,,公共类ChangeState: IHttpHandler
,,,{
,,,,,,,公共空间ProcessRequest (HttpContext上下文)
,,,,,,,{
,,,,,,,,,,,int状态=int.Parse (context.Request.QueryString [“state"]);
,,,,,,,,,,,int id=int.Parse (context.Request.QueryString [“id"]);
,,,,,,,,,,,ReviewService rs=new ReviewService ();
,,,,,,,,,,,检查r;
,,,,,,,,,,,null

Ajax怎么实现评论中顶和踩功能