2012-04-01 7 views
0

Ich rufe asp.net Aktion von Proxy, um die Speicherdaten zu füllen. Ich spezifiziere die URL korrekt, aber bei make get Anfrage an Aktion fügt sie Abfragezeichenfolgenparameter an den Aufruf an. Dies führt zu einem 404-Fehler. ich unter meinem Code bin Entsendung,Anruf Asp.Net MVC Aktion Laden in Sencha Touch

Asp.net Mvc Aktion

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

Shop Definition in Sencha Touch 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 
} 
}); 

Dies ist der Ajax-Aufruf das ist gemacht.

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

ich, dass ich davon aus, weil nicht Aktion keine params hat die meinen Ajax-Aufruf gemacht wird es in einem 404-Fehler führt. Ich bin mir nicht sicher, die richtige Art, mvc Aktion aufzurufen. Bitte lassen Sie mich wissen, wenn ich falsch liege. Jede Hilfe wird geschätzt.

update: Ich habe versucht, die gleiche Abfrage Zeichenfolge params asp.net MVC Aktion. Trotzdem verursacht es 404 Fehler. Wenn ich dieselbe URL ohne irgendwelche Abfragezeichenkettenparameter in der neuen Registerkarte öffne, gibt es mir Json-Ergebnis zurück.

+0

Meinen Sie 'GET' params von Sencha Touch auf die AJAX angehängt werden, nennen? Warum sollte das einen 404 Fehler verursachen? – Jay

+0

Ich habe meine Frage aktualisiert. – mehul9595

+0

Sieht aus wie ein reines ASP.net-Problem. Nicht sicher, dass ST2 irgendetwas damit zu tun hat. – Jay

Antwort

0

Ich habe das Problem herausgefunden.

Der Fehler 404 wurde aufgrund eines falschen URL-Konfigurationsparameters im Speicher verursacht. Außerdem habe ich dem Leser eine rootProperty hinzugefügt. So sieht der Proxy-Code aus.

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 } 
}); 

Constructing Rückgabeobjekt in ASP.MVC Aktion.

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