2014-02-18 71 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()