2012-04-01 78 views
0

我從代理調用asp.net操作來填充商店數據。 我正確地指定了網址,但在獲取Action請求後,它將查詢字符串params附加到該調用。這導致了404錯誤。 我張貼下面我的代碼,調用Asp.Net MVC操作以sencha觸摸加載商店

Asp.net MVC行動

public JsonResult SongsList() 
{ 
     List<MusicFileModel> musicFileModels = MusicFileModel.GetAllMusicFiles(); 
     return Json(musicFileModels, JsonRequestBehavior.AllowGet); 
} 

商店定義煎茶觸摸2

Ext.define('CloudPlayerUI.store.Songs', { 
extend: 'Ext.data.Store', 
config: { 
    model:'CloudPlayerUI.model.song', 
    proxy: { 
     type: 'ajax', 
     url: '/Home/SongsList', 
     param:'', 
     reader: { 
      type: 'json' 
     } 
    }, 
    autoLoad:true 
} 
}); 

這是Ajax調用就是這樣做的。

GET http://localhost/Home/SongsList?_dc=1333338051329&page=1&start=0&limit=25 

我假設,因爲,行動不具有正在取得我的Ajax調用 它導致一個404錯誤任何PARAMS。 我不確定調用mvc動作的正確方法。請讓我知道如果我出錯了。 任何幫助表示讚賞。

更新: 我嘗試添加相同的查詢字符串params到asp.net mvc行動。它仍然導致404錯誤。當我在新選項卡中打開沒有任何查詢字符串參數的相同url時,它將返回Json結果。

+0

你的意思'GET' PARAMS由煎茶觸摸附加到AJAX調用?爲什麼會導致404錯誤? – Jay 2012-04-01 23:39:30

+0

我更新了我的問題。 – mehul9595 2012-04-02 03:48:41

+0

看起來像純粹的ASP.net問題。不確定ST2與它有什麼關係。 – Jay 2012-04-02 04:41:50

回答

0

我想出了這個問題。

404錯誤是由於商店中定義的URL配置參數不正確導致的。另外我還向讀者添加了一個rootProperty。 這就是代理代碼的樣子。

Ext.define('CloudPlayerUI.store.Songs', { 
extend: 'Ext.data.Store', 
config: { 
    model:'CloudPlayerUI.model.song', 
    proxy: { 
     url: 'Home/SongsList', //Changes to url 
     type:'ajax', 
     reader: { 
      type: 'json', 
      rootProperty: 'ResponseData' //Addeed reader property. 
     } 
    }, 
    autoLoad:true } 
}); 

構建在Asp.MVC行動回報對象。

var results = new 
          { 
           Success = true, 
           ResponseData = musicFileModels 
          }; 
     return Json(results, JsonRequestBehavior.AllowGet);