ASP.NET MVC3 技术(五) JSON 数据的传递

转载 2011年10月28日 15:20:55
 

今天微软发布了 ASP.NET MVC 3正式版,ASP.NET MVC 3 中的大多数知识点本站已经做过说明。ASP.NET MVC 3 中默认支持对 JSON 数据的接收,今天就让我们看看 JSON 数据的绑定。使用时会用到一点 jQuery 的知识,相信对经常访问本站的朋友来说并不难理解。

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 结果如下图所示:

ASP.NET MVC 3 接收 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 Chrome 中结果如下:

ASP.NET MVC 3 返回 JSON 结构 1

ASP.NET MVC 3 返回 JSON 结构 2

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

ASP.NET MVC 3 执行结果

至此我们清楚的看到,在 ASP.NET MVC 3 中对于 JSON 数据的接收变得非常智能,同时使用 jQuery Templates 插件使得绑定 JSON 数据变得非常简单。如果你还看过本站中的 jQuery插件-微软 jQuery Data Linking ,你会发现使用它也会使项目中的代码简洁和易于维护。当然本篇举的例子非常简单,相信你能使用ASP.NET MVC 3 高效地做出真正实用的项目。

ASP.NET MVC 4 中的JSON数据交互总结

前台Ajax请求很多时候需要从后台获取JSON格式数据,一般有以下方式: 拼接字符串: return Content("{\"id\":\"1\",\"name\":\"A\"}"...
  • agonie201218
  • agonie201218
  • 2015-05-15 15:17:45
  • 1557

asp .net mvc ajax 传值到后台,并放回JSon值解析

什么是 AJAX ? AJAX = 异步 JavaScript 和 XML。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新...
  • agonie201218
  • agonie201218
  • 2015-05-10 22:47:40
  • 3050

asp.net MVC接收前端传递的复杂json对象的简单处理方法

有时候,我们需要从页面传递一组数据到后台,但同时又需要传递几个独立的参数,这种情况很伤脑筋。 网上有各种各样的说法和办法,但都不好用,或没有说到关键的地方。 还有的建议传字符串后台格式化或解析,也...
  • foren_whb
  • foren_whb
  • 2017-12-25 15:49:43
  • 439

Ajax发送json格式数据到Asp.net MVC服务端的一些代码片段

最近一直做些asp.net mvc的页面,每次前端与后端交互,都要baidu查下代码怎么写,也不去思考为什么这么写,导致每每写这代码,都需要下search下代码。 正好现在有点空闲时间,我就把我写的代...
  • qq_26054303
  • qq_26054303
  • 2016-05-17 17:29:39
  • 1075

ASP.NET MVC3如何用JQuery传递数组(集合)类型参数给JsonResult Action

ASP.NET MVC3如何用JQuery传递数组(集合)类型参数给JsonResult Action Edi_Wang 2012-10-16 星期二 22:00 ...
  • niewq
  • niewq
  • 2013-12-29 23:42:23
  • 2926

MVC 中获取Json数据

@{ ViewBag.Title = "json示例项目"; } @Scripts.Render("~/bundles/jquery") json示例项目View GetJsonDa...
  • smartsmile2012
  • smartsmile2012
  • 2016-06-29 17:11:43
  • 2108

ASP.NET MVC 4 中的JSON数据交互

前台Ajax请求很多时候需要从后台获取JSON格式数据,一般有以下方式:   拼接字符串 return Content("{\"id\":\"1\",\"name\":\"A\"}"...
  • jiangfei009003
  • jiangfei009003
  • 2014-08-06 10:21:44
  • 944

.net mvc3.0 中接收 json 数据,并转换为自定义的 C# 对象

软件环境:jquery + .net mvc3.0 + c#功能说明:1.在 javascript 中实例化一个 json 对象,并赋值2.将 json 对象传递到 mvc3.0 项目 Control...
  • xxj_jing
  • xxj_jing
  • 2011-07-26 18:12:50
  • 10413

ASP.NET MVC 3 网站优化总结(一) 使用 Gzip 压缩

网站开启 Gzip 压缩的好处相信很多人都已经清楚,这样做可以提高网站的性能。那么为什么很多网站没有开启 Gzip 压缩功能呢?原因有4点:防病毒软件、浏览器 bug、网站代理和服务器未配置。 ...
  • jurken
  • jurken
  • 2013-12-24 14:21:46
  • 657

ASP.NET MVC Jquery提交Json数据

1、前台通过Jquery提交Json数据     $(function () {         var queryJson = "{" +             "Id:'" + $("...
  • shan1774965666
  • shan1774965666
  • 2014-08-04 11:19:59
  • 714
收藏助手
不良信息举报
您举报文章:ASP.NET MVC3 技术(五) JSON 数据的传递
举报原因:
原因补充:

(最多只允许输入30个字)