Wie gehen json-string zu webmethod c# ASP.NET

Ich versuche zu stringify ein javascript-Objekt, und übergeben Sie den string als parameter an eine WebMethod im Code-Behind. Ich kann nicht damit es funktioniert, wie bekomme ich einen Internal Server Error 500 und der stacktrace sagt, dass der Wert fehlt für parameter.

Hier ist der javascript-code:

var jSon = JSON.stringify(javascriptObject); 
//"{"Foretagsnamn":"Avector","BGFarg":"000000","TextColor":"fafafa","FooterFarg":"ffffff","FooterColor":"000000","FooterLinkColor":"050505","FeaturedBorderColor":"","HoverFarg":"12ebeb","RutFarg":"0d0d0d","SelectedRutFarg":"","RutColor":"FFFFFF","LankColor":"","DelaMedSig":"1","PersonalSida":"0","StartpageTitle":"","StartpageDescription":"","GoogleMaps":"<iframe width=\"425\" height=\"350\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" src=\"https://maps.google.se/maps?f=q&amp;source=embed&amp;hl=sv&amp;geocode=&amp;q=Avector AB&amp;aq=&amp;sll=56.225986,12.870827&amp;sspn=0.076248,0.154324&amp;ie=UTF8&amp;hq=Avector AB&amp;hnear=&amp;t=m&amp;cid=645910733081021950&amp;iwloc=A&amp;ll=56.224594,12.859229&amp;spn=0,0&amp;output=embed\"></iframe><br /><small><a href=\"https://maps.google.se/maps?f=q&amp;source=embed&amp;hl=sv&amp;geocode=&amp;q=Avector AB&amp;aq=&amp;sll=56.225986,12.870827&amp;sspn=0.076248,0.154324&amp;ie=UTF8&amp;hq=Avector AB&amp;hnear=&amp;t=m&amp;cid=645910733081021950&amp;iwloc=A&amp;ll=56.224594,12.859229&amp;spn=0,0\" style=\"text-align:left\">Visa större karta</a></small>","HittaKartaUrl":"http://www.hitta.se/avector ab/ängelholm/hxTP-4v1HG?vad=Avector AB","EniroKartaUrl":"http://kartor.eniro.se/m/aKkhi","Ikoner":"2","Email":"[email protected]","AdressSida":"1","shadowColor":"ffffff","lineColor":"2b292b","MenuHoverIcon":"Välj bild från server","fontFamily":"Verdana","supportText":"Support Avector","captcha":true,"metaKeywords":"","ShowSupportInFooter":true}"

$.ajax({
    type: "POST",
    url: "Post/Installningar.aspx/Updatera",
    data: jSon,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {

        var resultAsString = result.d;
        //_this.parent().siblings('.SavedStatus').html(resultAsString);

        if (resultAsString == "1") { //Gick bra att spara.
           alert("Uppgifterna är sparade.");
           document.location = document.location;
        }
        else {
           $('#StatusText').html("Gick inte att spara uppgifterna.");
        }


    },
    error: function (xhr, ajaxOptions, thrownError) {

    }
});

Und hier Ist das webmethod:

[WebMethod]
public static string Updatera(string jSon)
{

Fühlt es sich wie ich habe alles versucht, was ich gefunden habe bei der Suche durch google und hier auf SO.

Habe ich auch versucht, diese Anleitung, die viele beziehen sich auf: http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

Irgendwelche Ideen?

Je nach Inhalt javascriptObject ist, müssen Sie möglicherweise serialise es anders. Versuchen Sie traditional: true und data: javascriptObject im $.ajax Anruf statt.
versuchen Sie ersetzen data: jSon, mit data: {"jSon":JSon},
Ive verändert, data: jSon-Daten: { "jSon": jSon }, ich bekomme immer noch Fehler gibt, die nun sagen: "Invalid json primitive".
Kann man teilen, jSon-Wert?
Ich habe aktualisiert die OP mit der jSon-Wert.

InformationsquelleAutor Paul Chefen Lagmark | 2015-04-23

Schreibe einen Kommentar