分享好友 编程语言首页 频道列表

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

ASP.NET  2023-02-09 01:410

今天微软发布了 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 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 Chrome 中结果如下:

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

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

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

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

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

查看更多关于【ASP.NET】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
ASP.NET操作Cookies的问题(Bug or Not)
以下存和取都是在不同的页面中,如果是在同一个页面也没必要用cookies了。 Test1: 给Cookies赋值: const string AAA="aaa"; Response.Cookies[AAA].Value = "111;222;333"; 取值: string value = Request.Cookies[AAA].Value; // value为111 Test2: 给Cooki

0评论2023-02-09888

Asp.Net Core 自定义验证属性
  很多时候,在模型上的验证需要自己定义一些特定于我们需求的验证属性。所以这一篇我们就来介绍一下怎么自定义验证属性。  我们来实现一个验证邮箱域名的自定义验证属性,当然,最重要的是需要定义一个继承自ValidationAttribute的类,然后在实现其IsVal

0评论2023-02-09525

Asp.Net 之 枚举类型的下拉列表绑定
有这样一个学科枚举类型:/// 学科 /// /summary public enum Subject {None = 0,[Description("语文")]Chinese = 1,[Description("数学")]Mathematics = 2,[Description("英语")]English = 3,[Description("政治")]Politics = 4,[Description("物理&qu

0评论2023-02-09819

[ASP.NET笔记] 1.Web基础知识
     1:http协议:     2:web服务器:     3:静态网页的概念     4:动态网页的概念       http协议:http(hypertext transfer protocol) 即超文本传输协议,这个协议是在internet上进行信息传送的协议任何网页之间要相互沟通,必须要尊循

0评论2023-02-09663

ASP.NET邮件发送 .net 发送邮件
  今天做了个ASP.NET做发送邮件功能,发现QQ邮箱好奇怪,当你用QQ邮箱做服务器的时候什么邮件都发送不出去(QQ邮箱除外)。而且爆出这样的错误:"邮箱不可用。 服务器响应为: Error: content rejected.http://mail.qq.com/zh_CN/help/content/rejectedmail.ht

0评论2023-02-09455

由ASP.NET Core根据路径下载文件异常引发的探究
前言    最近在开发新的项目,使用的是ASP.NET Core6.0版本的框架。由于项目中存在文件下载功能,没有使用类似MinIO或OSS之类的分布式文件系统,而是下载本地文件,也就是根据本地文件路径进行下载。这其中遇到了一个问题,是关于如何提供文件路径的,通

0评论2023-02-09562

ASP.NET 后台接收前台POST过来的json数据方法
 ASP.NET前后台交互之JSON数据 https://www.cnblogs.com/ensleep/p/3319756.html

0评论2023-02-09501

Asp.Net 常用工具类之加密——对称加密DES算法(2)
     又到周末,下午博客园看了两篇文章,关于老跳和老赵的程序员生涯,不禁感叹漫漫程序路,何去何从兮!  转眼毕业的第三个年头,去过苏州,跑过上海,从一开始的凌云壮志,去年背起行囊默默回到了长沙准备买房,也想有个家(毕竟年级不小了),有盼

0评论2023-02-09995

把自己的ASP.NET应用程序与SharePoint集成在一起
微软有文档描述这个解决方法的, 如下.   How to enable an ASP.Net application to run on a SharePoint virtual server http://support.microsoft.com/kb/828810?&clcid=0x409 Allowing Web Applications to Coexist with Windows SharePoint Services http

0评论2023-02-09749

ASP.NET中的OutOfMemoryException
在博客园看到了一位园友写的文章《如何处理OutOfMemoryException异常?》,于是想和大家交流一下ASP.NET中出现OutOfMemoryException的问题。实际上,在ASP.NET Web服务器上,ASP.NET所能够用到的内存,通常不会等同于所有的内存数量。在machine.config配置文

0评论2023-02-09823

【Mono】Linux下的Asp.Net配置指南
本文将介绍如何在Linux操作系统上搭建Asp.Net服务,在阅读本文之前,读者要先确 定自己已经安装好Linux操作系统、Mono Runtime,假如需要使用mod_mono的话,还 需要首先完成Apache的安装和配制。Mono的安装和配置请参考这里。 XSP XSP是一个轻量级的Web服务器

0评论2023-02-09312

EXT调用ASP.NET AJAX WebService
Posted 周五, 04/11/2008 - 16:34 by admin 在asp.net ajax中,使客户端调用WebService变得非常的简单,而且非常有用(个人觉得这个功能是asp.net ajax的核心,很多与客户端的交互都需要这个功能来辅助实现)。那在EXT中,标准的客户端与服务器端交互,使用的

0评论2023-02-09499

asp.net中Timer定时器在web中无刷新的使用
最近在做一个项目的时候,web端的数据需要与数据源进行实时同步,并保证数据的准确性,当时,考虑到使用ajax异步刷新技术。但后来在网上查找相关资料时,发现这样做,太浪费资源了,因为ajax的提交请求不应该这么频繁的,只适用于那种手动请求响应的那种,因

0评论2023-02-09961

ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页的方法
总结了一下ASP.Net访问母版页控件、属性、方法及母版页中调用内容页的方法,供大家参考: 首先,必须通过内容页中的MasterTye指令,对母版页实施强类型化,即在内容页代码头的设置中增加如下指令%@ MasterType VirtualPath="~/Master/MenuElement.master" %

0评论2023-02-09783

asp.net 2.0 ajax中使用PopupControlExtender
 最近在著名的4guysfromrolla.com(http://www.4guysfromrolla.com)上,有篇不错的文章(http://aspnet.4guysfromrolla.com/articles/070407-1.aspx),讲的是如何使用aspajx中的controltookit中的PopupControlExtender控件来实现一些特殊的效果,比如文中举了

0评论2023-02-09965

更多推荐