2009-05-06 39 views
1

Ich versuche, Daten an den Server zu senden und einen Datensatz zurück zu bekommen. Was ich zurückbekomme, ist der HTML-Code für die ganze Seite AND, es löst nicht die Action in meinem Controller aus. Und ja - JQuery ist immer noch verwirrend für mich.

Der Code, den ich zur Zeit habe, ist:

function updateNavIndex(pageIndex) { 
    var filters = $("form").serialize(); 
    var productGroup = $("#valProductGroup").attr('title'); 
    var productType = $("#valProductType").attr('title'); 
    var itemsPerPage = $("#ItemsPerPage").val(); 

    $.ajax({ path: "/CatalogAjaxController/UpdateNavigation" 
      , type: "POST" 
      , data: "{ productGroup: " + productGroup + ", productType: " + productType + ", itemsPerPage: " + itemsPerPage + ", pageIndex: " + pageIndex + ", filters: " + filters + "}" 
      , success: function(data) { handleMenuData(data); } 
    }); 
    $.ajax({ path: "/CatalogAjaxController/UpdateProducts" 
      , type: "POST" 
      , data: "{ productGroup: " + productGroup + ", productType: " + productType + ", itemsPerPage: " + itemsPerPage + ", pageIndex: " + pageIndex + ", filters: " + filters + "}" 
      , success: function(data) { handleProductData(data); } 
    }); 
} 

Die Callback-Funktion wird Auslösung und die Funktionsdefinition wie folgt aussieht:

function handleMenuData(data) { 
    $("#navigation ul").remove(); 
    } 

An diesem Punkt der „Daten“ Variable die HTML-Seite hat in es. (Und wie gesagt, die Aktion wurde nicht ausgelöst.) Ich denke, dass ich die $ ajax-Funktion nicht direkt aufrufen sollte, sondern eine var-Funktionsdefinition verwenden sollte. Etwas wie:

var retrieveMenuData = function(path, productGroup, productType, itemsPerPage, pageIndex, filter, fnHandleCallback) { 
    $.ajax(path 
      , type 
      , { productGroup: productGroup, productType: productType, itemsPerPage: itemsPerPage, pageIndex: pageIndex, filter: filter } 
      , function(data) { fnHandleCallback(data); }); 
}; 

Ich bin nicht sicher, ob ich es richtig definiert habe oder wie man es richtig nennt. Eine Hilfe ist erwünscht!

Antwort

2

auch, haben Sie dort einige merkwürdige Zitate bekam .. die Syntax für data: ist mehr wie folgt aus:

+1

Ah, guter Punkt ... es macht nicht viel Sinn, JSON in Javascript zu zitieren ... JSON ist schließlich Javscript Object Notation. – Powerlord

+1

Ich benutze den Beitrag bei "http://stackoverflow.com/questions/799404/ajax-and-mvc-c" und ich bekomme immer noch den Fehler "Daten ist undefiniert" - wo Daten die Rückkehr sein soll die Controller.Action-Methode. –

+0

My var Funktionsdefinition lookls wie: var retrieveData2 = function (Pfad, Produktgruppe, product, ItemsPerPage, pageindex, Filter, fnHandleCallback) { $ .getJSON (Pfad , {Produktgruppe: Produktgruppe, product: product, ItemsPerPage: ItemsPerPage, pageIndex: pageIndex, Filter: Filter} , function (data) {fnHandleCallback (data);}); }; Wenn ich anrufe ist es wenn ich den Fehler bekomme. Mein Aufruf sieht wie folgt aus: retrieveData2 ("/ CatalogAjaxController/UpdateNavigation", productGroup, productType, itemsPerPage, pageIndex, Filter, handleMenuData (Daten)); * confused * –

Verwandte Themen