• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

在ASP.netMVC里用Jquery的Ajax功能调用相关LinqtoSQL生成的类出现错误---循环引用 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  • Linq to sql里实体转换为JSON的问题.

  • 在学习段asp.net mvc 后.本想用做个这样的项目.只是在这里前台与后台通过xml通信不是我所喜欢的.
    直到学习到JSON的传输,我想这就是我要用的了.如下.用Linq to sql来对象化数据.然后准备OK.先用JSON
    下下来做个例子看看前台与后台如何用JSON通信.后台如下.

            }

    前台如下.

      

    实现没有什么问题.都是我相要的结果.然后我就想可以用数据库里的来和前台交互了.如下.

        }

     到这里就有问题了.首先我想到是前台有问题,与是用IE8.0的调试器,呵呵,比较好用(本来老是用IE6的,因为想看某位牛人
    的文章没办法才改的)发现了个好调试器.下断点后发现根本到不了success里.没办法.查找Jquery里的函数.发现这个
    complete.不管成功与否,都用给你调用.我下断点到里.可以看到有个错误提示比较有用 --------- 循环引用--------.
    但是不理解其含义.与是调试后台.MVC下有个json因为调试里信息不全,在网上找到json.net下来引用.发现还是解决不了.没办法
    我把json.net项目加入到我的解决方案.然后开始跟踪调试.后终于找到错误地方.如下

    这里后就会转入错误,最后我在这里分析后,然后查看linq to sql为我生成的代码.发现问题所在.如下所示.
    在这里我看到了voteTitle.我说下的的结构吧.vote-问卷.votetitle-问卷题目.titleitem-题目选项.
    vote-votetitle 一对多,votetitle-titleitem 一对多.
    本身这里是要根据反射在找votetitle的属性,votetitle里因为包括titleitem,这也没什么.就找到titleitem,然后他又查找
    titleitem
    里的属性.这下问题来了.因为titleitem里有个属性就是原votetitle,这下好了,他又开始找votetitle了,形成了我所
    开始不知道的循环引用.
    下面给出linq to sql为我生成的代码.

    在这得到原因.解决方法那就很多了.我就用json.net里的linq.如下.
                var rss = from title in titles
                              select new { Title = title.Title, Statue = title.Statue };
                string ss = JsonConvert.SerializeObject(rss);
    这里生成的结果大家有想不通的可以看我前一遍文章.
    http://www.cnblogs.com/zhouxin/archive/2009/09/09/1562970.html
    最后感想.有个好的调试工具真的不错.(在大学里学java我就是因为受不了那个java给我的错误原因.转投到VC6,现在到VS).
    本人水平有限,有什么错误的地方,希望大家指出.谢谢.


    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    上一篇:
    【Asp.Net使用EasyUI】EasyUIcombox实现联动发布时间:2022-07-10
    下一篇:
    ASP.NET注册IIS发布时间:2022-07-10
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap