2014-02-18 53 views
0

我有简单的Ajax调用阿贾克斯被嵌套的数据,结果500(内部服务器错误)

$.get("api/dashboard/tile/1x1/" + tag, { id: id }, 
       function (tile) { 
        options.result(modelmapper.fromDb(tile, 'dashboard')); 
       }, 'json') 

从ASP.NET MVC控制器读取。对象瓷砖嵌套到人

class Person{ 
public int Id { get; set; } 
public Tile Tile { get; set; }} 

class Tile{ 
public int Id { get; set; }} 

问题:当ID是不同于一切正常,位在ID相同,则

无法加载资源:服务器按照500的状态回应(内部服务器错误)

唯一的一个解决方案,我可以看到(显然它的工作原理)来标识重命名为像PERSONID有意义的事情,但后来我失去了很多的灵活性,需要重新写显著部分的应用程序。请帮忙。

UPDATE 控制器

[System.Web.Http.ActionName("tile")] 
    [System.Web.Http.AcceptVerbs("GET")] 
    // GET api/dashboard/tile/1x1/person 
    public Person Tile() 
    { 
     var tile = new Tile(); 
     tile.Id = 1; 

     var personTile = new Person(); 
     personTile.Id = 1; 
     personTile.Tile = tile; 
     return personTile; 
    } 

的解决方案:只有一个解决方案,我发现如果强制序列化控制器JsonConvert.SerializeObject数据,然后在客户端淡化JSON.parse()来

+0

向我们显示您的控制器代码 – Cris

+0

500服务器错误指示y您的服务器端代码出现故障。在你依赖你的AJAX代码之前,你需要做任何必要的修正。 – 2014-02-18 07:55:49

+0

但我能够从地址栏 – nelly2k

回答

0

的只有一个解我发现如果强行序列化控制器JsonConvert.SerializeObject中的数据,然后在客户端进行淡化JSON.Parse()