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&source=embed&hl=sv&geocode=&q=Avector AB&aq=&sll=56.225986,12.870827&sspn=0.076248,0.154324&ie=UTF8&hq=Avector AB&hnear=&t=m&cid=645910733081021950&iwloc=A&ll=56.224594,12.859229&spn=0,0&output=embed\"></iframe><br /><small><a href=\"https://maps.google.se/maps?f=q&source=embed&hl=sv&geocode=&q=Avector AB&aq=&sll=56.225986,12.870827&sspn=0.076248,0.154324&ie=UTF8&hq=Avector AB&hnear=&t=m&cid=645910733081021950&iwloc=A&ll=56.224594,12.859229&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
versuchen Sie ersetzen
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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst müssen Sie verwenden
var jSon = JSON.stringify({obj:javascriptObject});
statt
var jSon = JSON.stringify(javascriptObject);
Dann webmethod wäre wie
Nun hier aData ist deine Klasse so etwas wie unten
Damit Ihre endgültige code Aussehen
jQuery :
Code Hinter :
- Do-check - jQuery Ajax JSON-Beispiel in Asp.net
[WebMethod] public static string Updatera(**string** obj) { // logic code }
Aber wir müssen, verwenden Sie den parameter als Klasse Typ, im obigen Fall JSON-Typ ist Typ aData Klasse[WebMethod]<br/> public static string Updatera(**aData** obj) { // logic code }
InformationsquelleAutor Satinder singh
Verwenden Sie dieses format für die ajax-post-format :
Ihre Json-Format so Aussehen :
'{name: "' + name +'" }',
Folgen Sie dieser Schritt-für komplette code :
http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx
InformationsquelleAutor Mayank Patel