zoukankan      html  css  js  c++  java
  • 在ASP.net MVC里用Jquery的Ajax功能调用相关LinqtoSQL生成的类出现错误循环引用

  • Linq to sql里实体转换为JSON的问题.

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

    Code

    前台如下.

    Code

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

    Code

     到这里就有问题了.首先我想到是前台有问题,与是用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).
    本人水平有限,有什么错误的地方,希望大家指出.谢谢.

  • 相关阅读:
    XAF 有条件的对象访问权限
    XAF 顯示 UnInplace Report(設置自定義條件顯示報表,不是根據選擇ListView記錄條件顯示報表)
    XAF 如何自定义PivotGrid单元格显示文本?
    XAF 如何布局详细视图上的按钮
    XAF How to set size of a popup detail view
    XAF Delta Replication Module for Devexpress eXpressApp Framework
    XAF 帮助文档翻译 EasyTest Basics(基础)
    XAF 用户双击ListView记录时禁止显示DetailView
    XAF How to enable LayoutView mode in the GridControl in List Views
    XAF 如何实现ListView单元格批量更改?
  • 原文地址:https://www.cnblogs.com/zhouxin/p/1563910.html
Copyright © 2011-2022 走看看