Javascript调用C#后台方法及JSon解析

 

如何使用Ajax 调用C# 后台方法。

在通常的WebForm中,我们通常使用“一般处理程序”来响应Ajax请求。今天我们尝试使用Ajax调用.cs文件的方法。

1、后台(.cs)测试方法

       [WebMethod]
public static string DisplayImagesInfo()
{
List<ImageQueueInfo> imagelist = new List<ImageQueueInfo>
{
new ImageQueueInfo{imageName="test1",imageUrl="http://images.aiyingshi.com/ProductPicPath/XL/170498.jpg"},
new ImageQueueInfo{imageName="test2",imageUrl="http://images.aiyingshi.com/ProductPicPath/XL/170498.jpg"},
new ImageQueueInfo{imageName="test3",imageUrl="http://images.aiyingshi.com/ProductPicPath/XL/170498.jpg"},
new ImageQueueInfo{imageName="test4",imageUrl="http://images.aiyingshi.com/ProductPicPath/XL/170498.jpg"},
new ImageQueueInfo{imageName="test5",imageUrl="http://images.aiyingshi.com/ProductPicPath/XL/170498.jpg"},
new ImageQueueInfo{imageName="test6",imageUrl="http://images.aiyingshi.com/ProductPicPath/XL/170498.jpg"},
new ImageQueueInfo{imageName="test7",imageUrl="http://images.aiyingshi.com/ProductPicPath/XL/170498.jpg"},
new ImageQueueInfo{imageName="test8",imageUrl="http://images.aiyingshi.com/ProductPicPath/XL/170498.jpg"},
}; JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
string imageinfoStr = jsonSerializer.Serialize(imagelist); return imageinfoStr; }

Javascript调用后台方法需要注意几点:

  1. 需要引入命名空间:

    using System.Web.Services;

    这样才能使用[WebMethod]特性。

    using System.Web.Script.Serialization;

    引入微软序列化命名空间。

  2. 必须将被调用的方法声明成Public的静态方法。

2、前台调用(javascript)代码:

<script type="text/javascript" src="Content/JS/jquery-1.8.2.js"></script>

    <%--<script type="text/javascript" src="Content/JS/jquery-1.8.2-vsdoc.js"></script>--%>

    <script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "POST",
contentType: "application/json",
url: 'Default.aspx/DisplayImagesInfo',
dataType: 'json',
success: function(data) { var dataObj = eval("(" + data.d + ")"); $.each(dataObj, function(i, item) {
$("#imageslist").append("<li><img alt=\"" + item.imageName + "\" src=\"" + item.imageUrl + "\"/></li>");
}) },
error: function() {
alert("error!");
} });
});
</script>
  1. type:需要使用POST方法。
  2. url:地址/方法签名

接下来是今天的重点:遇到了点Json解析的问题,备忘一下。

微软框架默认返回一个  { "d": "后台返回的数据" } 的数据。接下来我们怎么解析它?

我们怎么拿到imagename和imageurl的值呢?

我们将返回的data.d。重新组装成json数组

var dataObj = eval("(" + data.d + ")");

【参考】

Javascript调用C#后台方法及JSon解析的更多相关文章

  1. c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询

    天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格. ​ ​不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...

  2. aspx前台调用cs后台方法

    随着对于mvc的习惯使用,aspx页面渐渐用的不怎么用了,主要是生命周期感觉上比较慢,要么就用html+handler一般处理程序来装下逼.虽然不用,但还是要给刚工作的人讲下,相信不少人都想过:既然前 ...

  3. JavaScript调用函数的方法

    摘要:这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! 一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正 ...

  4. asp.net Ajax调用Aspx后台方法

    Ajax调用的前提(以aspx文件为例:) 1.首先需要在aspx文件后台中引用using System.Web.Services; 2.需要调用的方法必须是公共的(public).静态的(stati ...

  5. 使用JavaScript调用aspx后台代码

    方法1:js同步调用 触发: onclick="javascript:share('<%# Eval("id_File") %>')" 页面函数: ...

  6. 5种 JavaScript 调用函数的方法

    一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性 ...

  7. jQuery AJAX实现调用页面后台方法

    1.新建demo.aspx页面.2.首先在该页面的后台文件demos.aspx.cs中添加引用. using System.Web.Services; 3.无参数的方法调用. 大家注意了,这个版本不能 ...

  8. jquery 使用ajax调用c#后台方法

    $.ajax({                         type: "get",                         cache: false,        ...

  9. html中的js监听付款按钮--触发ajax调用php后台--得到的json数据---交给安卓原生处理

    //01 var pay_status = new Object();$(".sure_pay").on("touchstart",function(){ va ...

随机推荐

  1. 黑客攻防技术宝典Web实战篇(三)web攻击方式总结

    web攻击的手段无非就是使服务器资源耗尽,使服务器无法接收正常请求. 一.DDos攻击 二.DRDos攻击 三.慢攻击 与Ddos攻击相反,慢攻击并不是以多取胜,而是靠保持连接.

  2. 自执行的匿名函数!function()

    最近有空可以让我静下心来看看各种代码,function与感叹号的频繁出现,让我回想起2个月前我回杭州最后参加团队会议的时候,@西子剑影抛出的一样的问题:如果在function之前加上感叹号 (!) 会 ...

  3. C++之map、list操作

    #include <iostream> #include "map_struct.h" #include <map> using namespace std ...

  4. js实现自定义右键菜单--兼容IE、Firefox、Chrome

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  5. .Net的要知道的一些事

    1.什么是.NET?什么是CLI?什么是CLR?IL是什么?JIT是什么,它是如何工作的?GC是什么,简述一下GC的工作方式? .Net是微软推出的框架 CLI是公共语言接口(规范) CLR是公共语言 ...

  6. Inorder Successor in Binary Search Tree

    Given a binary search tree (See Definition) and a node in it, find the in-order successor of that no ...

  7. aspcms 留言 搜索

    留言: <form method='POST' name='myform' onSubmit='return metmessagesubmit("姓名不能为空"," ...

  8. 剑指Offer 变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法.   其实就是斐波那契数列问题. 假设f(n)是n个台阶跳的次数. f(1) = ...

  9. linux下vi命令大全[转]

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  10. java读取文件

       一个字节一个字节地读取                  File file =          InputStream inputStream =                       ...