ASP.NET MVC3 JSON数据的传递使用说明

ASP.NET MVC 3 中内置了对 JSON 的绑定支持,使得接收从客户端传递过来的 JSON 格式的数据变得非常简单。本篇还是以 Android 博客项目中的留言小功能来简单的说明一下具体的使用方法。先看看 Razor 视图引擎下的 HTML代码,这块主要用来显示留言的数据列表:

 代码如下 复制代码
<div>
    <script id="userTemplate" type="text/html">
    <div><a href="${Website}">${UserName}</a> Says: ${Content}</div>
    </script>
    <div id="Contact"></div>
    <input type="button" id="create" value="Create" />
</div>

当我们点击 Create 按钮时提交留言(这里为了简单,留言内容固定了),执行 jQuery Ajax 传递 JSON 格式数据,如下:

 代码如下 复制代码

$("#create").click(function () {
    var contact = {
        UserName: "I love jQuery",
        Website: "http://www.google.com",
        Content: "Nice to meet you."
    };

    $.ajax({
        url: "/Contact",
        type: "POST",
        data: contact,
        dataType: "json",
        success: function (req) {
            $("#userTemplate").render(req).appendTo("#Contact");
        }
    });
});

如果你是纯 ASP.NET 开发者,没有接触过 jQuery ,那么我要强烈的建议你赶快学习 jQuery ,jQuery 在 ASP.NET MVC 3 中起着非常重要的作用,它会越来越流行。现在,你可以参考下 jQuery学习大总结(五)jQuery Ajax。这样将留言内容以JSON 结构通过 POST 方式向后台提交,ASP.NET MVC 3 Controller 中接收代码如下:

 代码如下 复制代码
[HttpPost]
public ActionResult Index(Contact contact)
{
    if (ModelState.IsValid)
    {
        android.Contact.AddObject(contact);
        android.SaveChanges();
    }
    var contacts = from c in android.Contact
                    where c.IsValid == 1
                    select c;
    return Json(contacts);
}

这里没有什么新知识,如果你没有看过前边 ASP.NET MVC 3 中的添加、修改、删除操作,你可以参考下 ASP.NET MVC3 实例(六) 增加、修改和删除操作(一),接收 JSON 可见,Index()方法中,接收强类型的 Contact 对象作为参数,ASP.NET MVC 3 能够在服务器端自动绑定 JSON 格式的数据到 .NET Contact 类型,ASP.NET MVC 3 添加操作中我们已经介绍过了这种自动绑定。可见,在 ASP.NET MVC 3 中实体数据的赋值变得非常简单,有了 Contact 对象后我们进行了保存操作,这里不再多说,到这我想大家已经了解到 ASP.NET MVC 3 中接收 JSON 的方便性了。程序最后使用Json()方法,它返回了一个JSON 结构的对象,在Google

如果你对使用 Google Chrome 调试 js 还不熟悉的话,可以参考下 Google Chrome 调试 js 入门,当然你也可以使用 FireFox 的 Firebug 来调试。最后 jQuery 程序中使用微软的 jQuery Templates 插件来将 JSON 格式的留言数据显示出来,使得我们没必要再进行对返回结果的遍历显示。关于 jQuery Templates 你可以参考下微软 jQuery Templates插件的使用、jQuery插件-微软 jQuery Templates。最后的结果如下:

MVC 3 中 在返回 JSON 类型时,时间的格式会是 "/Date(1306418993027)/" ,那么我们如何转换 JSON 返回结果中的时间格式呢?如在 Controller 中返回了 JSON 结构的数据:

 代码如下 复制代码

[HttpPost]
public ActionResult Index(ZComment model)
{
    return Json(model, JsonRequestBehavior.AllowGet);
}

大多数情况下我们不会采用这种形式的时间格式,自己写了点代码来处理这个问题,和大家分享一下:

 代码如下 复制代码

function ChangeDateFormat(d)
 {
     var date = new Date(parseInt(d.replace("/Date(", "").replace(")/", ""), 10));
     var month = padLeft(date.getMonth() + 1,10);
     var currentDate = padLeft(date.getDate(),10);
     var hour=padLeft(date.getHours(),10);
     var minute=padLeft(date.getMinutes(),10);
     return date.getFullYear() + "-" + month + "-" + currentDate+" "+hour+":"+minute;
 }
 
function padLeft(str,min){ 
    if (str>=min)
        return str;
    else 
        return "0" +str;
}

调用方法后发现结果已是我们所需要的

至此我们清楚的看到,在 ASP.NET MVC 3 中对于 JSON 数据的接收变得非常智能,同时使用 jQuery Templates 插件使得绑定 JSON 数据变得非常简单

时间: 2024-10-11 07:17:57

ASP.NET MVC3 JSON数据的传递使用说明的相关文章

Asp.net中Json数据的转化,读取与应用

  JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,而且它是基于JavaScript 的. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript 等).这些特性使JSON成为理想的数据交换语言.   Json数据有严格的格式,必须遵守这个格式才可以被解析,主要有两种结构   ①"名/值"对的集合在不同的语言中被理解

asp.net mvc3 数据验证(四)—Remote验证的一个注意事项

原文:asp.net mvc3 数据验证(四)-Remote验证的一个注意事项         前几篇把asp.net mvc3 中基于Model的主要数据验证的方法都已经讲完了,本节纯粹只是讲一个我曾经遇到的问题,因为和数据验证相关,所以就放在了这系列的文章中.         经过前几篇文章的分享,大家应该觉得asp.net 自带的Remote远程数据注解比较好用,但是我在实际使用中却遇到了问题.         首先,一般来说对于一个属性的验证可能需要不止一个的远程验证,比如对于用户名来说

javascript-静态页面使用ajax获取后台传递的Json数据

问题描述 静态页面使用ajax获取后台传递的Json数据 项目中需要用到javascript获取后台传回来的Json数据,需要使用了ajax,页面是自动生成的静态页面,不能够使用到js框架,有办法么? 解决方案 ssh 中 jquery ajax 调用action返回的json数据并传递到页面Struts2结合jquery使用Ajax传递Json数据jsp页面使用json后台数据 解决方案二: 静态页面为什么不能用js,两者根本不矛盾的事情. 解决方案三: 你的意思是不能导入框架的js文件是吗

asp.net提取多层嵌套json数据的方法_实用技巧

本文实例讲述了asp.net提取多层嵌套json数据的方法.分享给大家供大家参考,具体如下: 在.net 2.0中提取这样的json: 复制代码 代码如下: {"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}} 引用命名空间: using Newtonsoft.Json; using Newtons

jQuery通过Ajax返回JSON数据

  jQuery通过Ajax返回JSON数据          最近在使用JQuery的ajax方法时,要求返回的数据为json数据,在处理的过程中遇到下面的几个问题,那就是采用不同的方式来生成json数据的时候,在$.ajax方法中应该是如何来处理的,下面依次来进行说明. 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据. JSON(JavaScript

jQuery通过Ajax向PHP服务端发送请求并返回JSON数据_AJAX相关

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用. 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据.阅读本文的读者应该具备jQuery.Ajax.PHP相关知识,并能熟练运用. XHTML <ul id="use

在Action中以Struts2的方式输出JSON数据的实例_java

下面是整个Action的完整代码: package cn.ysh.studio.struts2.json.demo.action; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.Servlet

jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用. 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据.阅读本文的读者应该具备jQuery.Ajax.PHP相关知识,并能熟练运用. XHTML <ul id="use

使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇_jquery

调用jQuery的ajax方法时,jQuery会根据post或者get协议对参数data进行序列化; 如果提交的数据使用复杂的json数据,例如: {userId:32323,userName:{firstName:"李",lastName:"李大嘴"}} 那么服务器是无法正常接收到完整的参数,因为jQuery对data的序列化,是使用了键值对拼装的方式; 参数拼装成 userId=32323&userName=object ; userName所指向的对象