Ajax 调用(传值)一般处理程序(.ashx)

问题:在一般处理程序(.ashx)中累加[index=‘b‘]的值
难点:前台获取JSON值后台解析
解决:
//#region 把index=b的值存在JSON对象中
function AjaxGetSum() {
  var arr = [];
  $("input[index=‘b‘]").each(function () {
    var arrObject = {};
    var tempVal = $(this).val();
    if (!$.gstr.isEmpty(tempVal)) { //本公司自己封装的js $.gstr.isEmpty(st) 判断st是否为空,返回true/false
      arrObject["inValue"] = tempVal;
      arr.push(arrObject);
    }
  });
  var JsonString = JSON.stringify(arr); //转换成JSON类型的字符串
  $.post("HandlerSum.ashx", { jsonVar: JsonString }, function (data) {
    alert(data);
  })
}
//#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;

namespace Train_First.Ajax_Rpc
{
  /// <summary>
  /// HandlerSum 的摘要说明
  /// </summary>
  public class HandlerSum : IHttpHandler
  {
    public void ProcessRequest(HttpContext context)
    {
      context.Response.ContentType = "text/plain";
      string ss = context.Request.Form["jsonVar"];	//获取前台传递过来的授课JSON字符串数组
      JArray javascript = (JArray)JsonConvert.DeserializeObject(ss);  //反序列化获取的JSON字符串数组

      string StringSum = "";
      for (int i = 0; i < javascript.Count; i++)
      {
        JObject obj = (JObject)javascript[i];
        string outValue = obj["inValue"].ToString();  //将一个个反序列化的JSON字符串数组转换成对象
        StringSum += outValue;
      }
      context.Response.Write(StringSum);
    }
    public bool IsReusable
    {
      get
      {
        return false;
      }
    }
  }
}
时间: 2024-08-25 04:58:23

Ajax 调用(传值)一般处理程序(.ashx)的相关文章

.net Ajax与后台一般处理程序(ashx) 交互

本文主要实现无动态刷新查询后台数据功能,主要用到ajax+ashx+sqlserver进行交互. 首先需要引用Jquery: <script language="javascript" type="text/javascript" src="../js/jquery.js"> html脚本: <asp:TextBox ID="tb_corpName" runat="server" MaxL

jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是"application/json", (3)data传递的数据必须是严格的json数据,如"{'a':'aa','b':'bb'}",而且参数必须和静态方法的参数一 一对应 (4)aspx的后台方法返回的数据默认形式是"{'d':'返回的内容'}",所

Jquery ajax调用后台aspx后台文件方法(不是ashx)

在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. (1)通过aspx.cs的静态方法+WebMethod进行处理 简单的介绍下WebMethod方法的用法 1.修饰符主要用public static修饰 2.方法前面加上[WebMethod]属性表明这是WebMethod方法 3.前台html页面(Client端)访问时要使用post方法,和后台.cs文件进行数据交互,否则会返回整个html页面. 4.当后台页面返回数据后

在一个aspx或ashx页面里进行多次ajax调用

在用ajax开发asp.net程序里.利用ashx页面与前台页面进行数据交互.但是每个ajax交互都需要一个ashx页面.结果是项目里一大堆ashx页面.使项目难以管理.现在我们就想办法让一个ashx页面里允许多个ajax交互; 前台页面AjaxTest.htm,内容如下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm

EF5+MVC4系列(11)在主视图中用Html.RenderPartial来调用分部视图(ViewDate传值);在主视图中用ajax调用action并在action中return PartialView返回分部视图(return view 和return PartialView 的区别)

一:主视图中调用子视图 在没有使用母版页的主视图中(也就是设置了layout为null的视图中),使用 Html.RenderPartial  可以调用分部视图(只调用视图,不调用action),并且使用 ViewData 来从主Action里面传值到主视图,或者是分布视图 最后生成的html如下   二:在主视图中用ajax调用子action并在子action中使用return PartialView返回分布视图(return view 和return PartialView 的区别) 这种情

jQuery Ajax无刷新操作一般处理程序 ashx

//前台实例代码 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

类型:Ajax;问题:ajax调用ashx参数获取不到;结果:ashx文件获取$.ajax()方法发送的数据

ashx文件获取$.ajax()方法发送的数据 今天在使用Jquery的ajax方法发送请求时,发现在后台中使用ashx文件无法接收到ajax方法中传递的参数,上网查了一下原因后发现了问题所在,原来是我在$.ajax方法中指明了"contentType: 'application/json; charset=utf8'",所以才导致了在ashx文件中处理请求时无法获取传递到服务器端的参数, 正确的写法如下: 1 $.ajax({ 2 url: '/Handler1.ashx?operF

Jquery Ajax调用aspx页面方法

原文:Jquery Ajax调用aspx页面方法 在asp.net webform开发中,用jQuery ajax传值一般有几种玩法 1)普通玩法:通过一般处理程序ashx进行处理: 2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理: 3)文艺玩法:通过WCF进行处理. 第一种和第三种方法不在本文介绍范围之内,下面重点介绍第二种方法. 说明 在我们的印象里 asp.net的Web服务是以.asmx来结尾的,而我们现在的asp.net也能实现Web服务,这是因为默认Web.

C#、asp.net中的一般处理程序.ashx文件重命名问题

这里简单说一下.net中,对一般处理程序文件xxx.ashx重命名的问题 事发原因,我在对aaa.ashx文件重命名为bbb.ashx时,页面中写好的ajax调用bbb.ashx时,调用不到了,找了一下,在bbb.ashx文件的目录下有2个文件:bbb.ashx.bbb.ashx.cs 打开bbb.ashx,发现 <%@ WebHandler Language="C#" CodeBehind="bbb.ashx.cs" Class="PengYuan