Json在asp.net开发中的应用

一、asp.net后台返回Json数据,前台js解析

在后台读取数据,并手动封装成Json格式:

        public ContentResult getUsersByOrgId(int Id)
        {
            DataTable table = UsersLogic.getUsersByOrgId(Id);
            StringBuilder data = new StringBuilder();
            foreach (DataRow row in table.Rows)
            {
                data.Append(",{");
                data.Append("\"UserId\":\"" + row["UserId"] + "\",");
                data.Append("\"UserName\":\"" + row["UserName"] + "\"");
                data.Append("}");
            }

            if (data.Length > 0)
                data = data.Remove(0, 1);
            string result = "{\"items\":[" + Convert.ToString(data) + "]}";
            return Content(result, "application/json");

        }

在前台用js解析,并展示到页面:

    function GetOrgUsers(Id) {
        $.post("/StockManage/Ware/getUsersByOrgId", { Id: Id }, function (data) {
            var rJson = JSON.parse(JSON.stringify(data));  //转为josn数据
            if (rJson != "" && rJson != null && rJson != "undefined") {
                var htmlData = "";
                for (m = 0; m < rJson.items.length; m++) {
                    var uid = rJson.items[m]["UserId"];
                    var uname = rJson.items[m]["UserName"];
                    htmlData += "<option value=‘" + uid + "‘>" + uname + "</options>";
                }
                $("#Select").html(htmlData);
            }
            return;
        });
    }

二、js封装Json数据,传给后台解析

js封装Json数组:

        var arr = [];
            var jsonObj = {};
            jsonObj.UserId= 2;
            jsonObj.UserName= "Hellow World!";
            jsonObj.Phone= "10086100101";
            arr.push(jsonObj);

            $.post(‘/UserArea/User/SaveData‘, { "param": JSON.stringify(arr) }, function (data) {
                Success(data);
            });

ASP.NET后台解析:

        #region 控制器接收数据
        public JsonResult SaveData(string param)
        {

        try
            {
                UserLogic.AddConstruct(param);  return Json(new { Result = "OK", Message = "操作成功" });

            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        #endregion

        #region 保存数据到数据库
        public static bool AddConstruct(string json)
        {
            bool status = false;

            try
            {
                JArray jObject = (JArray)JsonConvert.DeserializeObject(json);
                for (int i = 0; i < jObject.Count; i++)
                {
                    User cs = new User();
                    var tmpObj = (JObject)jObject[i];

                    cs.UserId= Convert.Int(tmpObj["UserId"]);
                    cs.UserName= tmpObj["UserName"].ToString();
                    cs.Phone= tmpObj["Phone"].ToString();//向主表插入数据
                    UserContext.Instance.Insert(cs);

                }
                status = true;
            }
            catch
            {
                status = false;
            }
            return status;
        }
        #endregion
时间: 2024-11-05 23:27:05

Json在asp.net开发中的应用的相关文章

asp.net5开发中DNX SDK版本的影响

某次asp.net5开发中遇到了一个很奇怪的问题,引用部分的nuget包没有显示任何错误,如下图: 但是编译时出现了几百个错误: 错误基本都是形如“CS0246 The type or namespace name 'Key' could not be found (are you missing a using directive or an assembly reference?) ”这种错误, 给人的第一感觉就是nuget包引用出了问题,但是不管你怎么检查就是查不出来哪里错了. 更离奇的是

asp.net开发中常见公共捕获异常方式总结(附源码)

本文实例总结了asp.net开发中常见公共捕获异常方式.分享给大家供大家参考,具体如下: 前言:在实际开发过程中,对于一个应用系统来说,应该有自己的一套成熟的异常处理框架,这样当异常发生时,也能得到统一的处理风格,将异常信息优雅 地反馈给开发人员和用户.我们都知道,.net的异常处理是按照“异常链”的方式从底层向高层逐层抛出,如果不能尽可能地早判断异常发生的边界并捕获异 常,CLR会自动帮我们处理,但是这样系统的开销是非常大的,所以异常处理的一个重要原则是“早发现早抛出早处理”.但是本文总结的服

ASP.NET开发中修改代码而不重启网站

我们在做网站开发的时候,通常是写好了一个功能就要进行测试,Visual Studio上点“Start Debugging”(快捷键是F5),这是调试模式,也有直接运行模式,“Start Without Debugging”(快捷键是Ctrl+F5),网站启动,并且默认会打开一个浏览器窗口让你看到结果,假如这个时候你发现点问题,需要调整代码…… 对于非*.cs文件 如果是cshtml.aspx.ashx或asmx这类非C#文件(*.cs),不管是调试模式还是非调试模式,直接点保存,就生效了,网站一

asp.net开发中遇到的奇葩bug及解决办法(会持续更新。。。)

1,不知道你们遇没遇到过,在vs2010或更高版本上运行程序的时候,完全没问题,放在IIS中出现了问题,就比如左侧是菜单项,点击菜单右边显示,如果菜单链接是这样:content.aspx,而另一个链接是这样:manager/manager_list.aspx,在IIS中就会出现Session过期的问题,content.aspx页面根本无法接收到传过来的session值,因此会报session相关的错. 解决办法:把链接路径改成一致就能解决,改成这样:manager/content.aspx.暂时

[转]在ASP.NET开发中容易忽略的2个小问题 Cookie乱码存取异常 和 iframe弹框的login跳转

本文转自:http://www.cnblogs.com/outtamyhead/p/3642729.html 本文地址:http://www.cnblogs.com/outtamyhead/p/3642729.html,转载需保留本地址. 最近在我的MVC项目中出现了两个非常小,但是往往惹出大麻烦的问题,借中午的时间在这里记录一下. 一:在本地调试环境下能够正常读取Cookie,但发布到IIS中就不能读取,报空指针异常. 二:由于使用的是Iframe框架,同时也加入了session超时重新登录的

分享一个ASP.NET开发中经常碰到的小问题,修改好的js代码保存生成后,在运行调试时却还是修改前的代码

记得刚开始学ASP.NET的时候就遇到过这个问题,各种无语,明明本地代码改了,保存生成了N遍,甚至重开VS,清浏览器缓存,都没用,调试起来就还是修改之前的js代码,上网查了半天也没查到解释,倒是有人提同样的问题,但是没人能给出答案. 于是那段时间很悲剧的只能每次出现这个问题,就重新建一个Web项目,把代码粘过去... 后来我尝试了下把VS升级到了2013,之后似乎就没出现过这个问题了,于是就以为就是VS2010的bug. 最近到了一家新公司,公司统一用VS2010,于是这个问题就又出现了..但是

在ASP.NET开发中一些单词的标准缩写

有些词可能共用一些缩写.带星号的缩写或词来源于PeopleSoft标准. The following standard word abbreviations should be used in naming records, fields, and SQRs: Word(s) Abbreviation Description AbbreviateAbbreviation ABRV   Academic ACAD   AcceptAcceptanceAccepted ACPT   Access A

ASP.NET开发,简化与封装

微软的ASP.NET的开发,就是面向对象的编程,当然前端也能体验至面向对象的话,使用Web控件也必须的. 任一控件,我们均可以在后端.aspx.cs或.aspx.vb程序中new一个对象出来. 很多场合里,在开发ASP.NET开发中,后端与前端交互,我们使用控件确实能方便与快捷互通. 本篇所涉及的内容以html markup标签与javascript(或jQuery)无关,因为演示的是Web控件应用.Insus.NET经常会针对开发的应用程序,写一些常用或是特定的对象或是控件.在一起开发的团队的

下一代Asp.net开发规范OWIN(1)—— OWIN产生的背景以及简单介绍

随着VS2013的发布,微软在Asp.Net中引入了很多新的特性,比如使用新的权限验证模块Identity, 使用Async来提高Web服务器的吞吐量和效率等.其中一个不得不提的是OWIN和Katana. OWIN的全称是Open Web Interface For .Net, OWIN是.Net开源社区借鉴Ruby而制定的.Net Web开发架构,有着非常简单的规范定义,同时极度降低了模块间耦合.OWIN并不是一个具体的实现,而只是一个规范,用来指导如何构建一个符合OWIN标准的Web生态环境