Asp.Net在客户端和服务器端,以JSON形式相互传值,可写扩展方法,用到的类型如下:

DataContractJsonSerializer类:

该类在System.Runtime.Serialization.Json命名空间下,是将对象序列化为JavaScript对象表示法(Json),并将Json数据反序列化为对象。

以Asp.Net MVC为例:

扩展方法如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.IO;

using System.Runtime.Serialization.Json;

namespace System.Web.Mvc

{

public  static  class  MyFormCollention

{

/// <summary>

/// 生成Json格式

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="obj"></param>

/// <returns></returns>

public static string ToJsonStr<T>(T obj)

{

DataContractJsonSerializerjson = new DataContractJsonSerializer(obj.GetType());

using (MemoryStream stream = new MemoryStream())

{

json.WriteObject(stream, obj);

string szJson = System.Text.Encoding.UTF8.GetString(stream.ToArray());

return szJson;

}

}

/// <summary>

/// 将JSON 字符转换为对象

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="str"></param>

/// <returns></returns>

public static T ToJsonObject<T>(this string str)

{

T obj = Activator.CreateInstance<T>();

using (MemoryStreamms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(str)))

{

DataContractJsonSerializerserializer = new DataContractJsonSerializer(obj.GetType());

return (T)serializer.ReadObject(ms);

}

}

}

}

网页客户端,View的Home文件夹(View视图):

<script>

var Person={

Name:"liu",

Age:"20",

}

functionReposeJson() {

$.ajax({

type:"Get",

url:"@Url.Action("SetJson","Home")?json="+JSON.stringify(Person),

dataType: "Json",

success: function (data)

{

alert(data.Name);

alert(data.Age);

}

})

}

</script>

<h3>We suggest the following:</h3>

<olclass="round">

<liclass="one">

<ahref="#"onclick="ReposeJson()">Learn more…</a>

</li>

</ol>

控制器调用:

public class HomeController : Controller

{

[HttpGet]

public string SetJson(string json)

{

Person boy = MyFormCollention.ToJsonObject<Person>(json);

Person girl = new Person();

girl.Age = "19";

girl.Name = "wang";

json = MyFormCollention.ToJsonStr<Person>(girl);

return json;

}

}

实体类:

public class Person {

public string Name{set;get;}

public string Age { set; get; }

}

Asp.Net MVC以JSON传值扩展方法的更多相关文章

  1. Asp.Net MVC以 JSON传值扩展方法

    Asp.Net在客户端和服务器端,以JSON形式相互传值,可写扩展方法,用到的类型如下: DataContractJsonSerializer类: 该类在System.Runtime.Serializ ...

  2. ASP.NET MVC学前篇之扩展方法、链式编程

    ASP.NET MVC学前篇之扩展方法.链式编程 前言 目的没有别的,就是介绍几点在ASP.NETMVC 用到C#语言特性,还有一些其他琐碎的知识点,强行的划分一个范围的话,只能说都跟MVC有关,有的 ...

  3. ASP.NET MVC HtmlHelper 类的扩展方法

    再ASP.NET MVC编程中用到了R语法,在View页面编辑HTML标签的时候,ASP.NET MVC 为我们准备好了可以辅助我们写这些标签的办法,它们就是HtmlHelper.微软官方地址是:ht ...

  4. Asp.Net MVC向视图View传值的三种方法

    本文将总结Asp.Net MVC向视图View传值的三种常见的方法: ----------------------------------------------------------------- ...

  5. 在Asp.Net MVC中用Ajax回调后台方法

    在Asp.Net MVC中用Ajax回调后台方法基本格式: var operData = ...; //传递的参数(action中定义的) var type = ...; //传递的参数(action ...

  6. ASP.NET MVC ETag & Cache等优化方法

    背景 最近有一个项目是用SmartAdmin + Jquery + EasyUI 一个ASP.NET MVC5的项目,一直存在一个性能问题,加载速度比较慢,第一次加载需要(在没有cache的情况下)需 ...

  7. ASP.net MVC 文件下载的几种方法

      ASP.net MVC 文件下载的几种方法(欢迎讨论) 在ASP.net MVC 中有几种下载文件的方法前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不 ...

  8. ASP.NET MVC 应用提速的十种方法

    [编者按]本文作者为 DZone 社区的最具价值博主(MVB) Jonathan Danylko,主要介绍为 ASP.NET MVC 应用提速的十种方法.由国内 ITOM 管理平台 OneAPM 编译 ...

  9. ASP.NET MVC Action向视图传值之匿名类型

    在使用ASP.NET MVC过程中想必大家都有遇到过一个问题就是我们的Action如何向视图传递匿名类型的值呢,如果不做特殊处理则无法实现. 接下来我们来看一个示例: 在我们的控制中: using S ...

随机推荐

  1. 微信小程序 - Util工具类

    /utils/utils.js   已经扩展到App对象中,Page方法中直接使用  app.util.method(...) 调用. 1. 扩展String.replaceAll JS默认值提供re ...

  2. yum 安装 influxdb/telegraf

    环境:centos 7 参考官网教程:http://docs.influxdata.com/telegraf/v1.9/introduction/installation/ 添加 yum 源: vim ...

  3. 28Mybatis_查询缓存-二级缓存-二级缓存测试-

    二级缓存原理:

  4. DFS应用——遍历有向图+判断有向图是否有圈

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 "DFS应用--遍历有向图+判断有向图是否有圈" 的idea 并用源代码加以实现 : ...

  5. 怎么用ChemDraw加反应条件

    众所周知大部分化学反应都需要在一定的条件下才会发生,比较常见的条件有压力.通电.温度.光照等等.这些特定条件在化学上就叫反应条件.我们在使用ChemDraw这款化学绘图软件的时候,往往需要给我们的化学 ...

  6. 论坛模块__发帖时使用FCKeditor

    论坛模块__发帖时使用FCKeditor 测试 <html> <head> <meta http-equiv="content-type" conte ...

  7. Tomcat服务器的安装与配置

    安装 输入网址进入Tomcat的官网            在左边导航栏选择对应下载的版本            下载安装包形式             下载并解压到我们欲放入的目录中 配置      ...

  8. Git 安装与使用

    http://blog.csdn.net/lishuo_os_ds/article/details/8078475#sec-1.8.2 http://blog.csdn.net/showhilllee ...

  9. poj_3415 后缀数组+单调栈

    题目大意 定义字符串T的子串T(i, k)=TiTi+1...Ti+k-1, 1≤i≤i+k-1≤|T|. 给定两个字符串A和B,定义集合S为S = {(i, j, k) | k≥K, A(i, k) ...

  10. vue mixins的使用

    官网传送 刚开始接触vue的时候,官网关于mixins的例子看了好几遍,发现还是不会用,包括vuex也是后来慢慢理解一点的,不过和vuex比起来.mixns还是很好理解,简单很多了 就我目前理解mix ...