gpt4 book ai didi

javascript - 如何将 json 字符串传递给 webmethod c# ASP.NET

转载 作者:数据小太阳 更新时间:2023-10-29 05:12:14 33 4
gpt4 key购买 nike

我试图将一个 javascript 对象字符串化,然后将该字符串作为参数传递给代码隐藏中的 WebMethod。我无法让它工作,因为我收到内部服务器错误 500,堆栈跟踪显示参数缺少值。

这是javascript代码:

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":"info@avector.com","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) {

}
});

这是网络方法:

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

感觉就像我已经尝试了通过 google 和 SO 搜索时找到的所有内容。

我也尝试过许多人引用的指南:http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

有什么想法吗?

最佳答案

首先,你需要使用:

var jSon = JSON.stringify({obj:javascriptObject});

代替:

var jSon = JSON.stringify(javascriptObject);

然后你的 WebMethod 会是这样的:

[WebMethod]
public static string Updatera(aData obj)
{
// logic code
}

现在 aData 是您的类,如下所示:

public class aData { 
public string Foretagsnamn { get; set; }
public string BGFarg { get; set; }
public string TextColor { get; set; }
public string FooterFarg { get; set; }
public string Email { get; set; }
}

所以你的最终代码看起来像jQuery:

var jSon = JSON.stringify({ obj:javascriptObject });
$.ajax({
type: "POST",
url: "Post/Installningar.aspx/Updatera",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
error: OnErrorCall
});

function OnSuccess(response){
// Do something
}
function OnErrorCall(){
// Do something
}

代码隐藏:

public class aData { 
public string Foretagsnamn { get; set; }
public string BGFarg { get; set; }
public string TextColor { get; set; }
public string FooterFarg { get; set; }
public string Email { get; set; }
}


[WebMethod]
public static string Updatera(aData obj)
{
// Logic code
}

关于javascript - 如何将 json 字符串传递给 webmethod c# ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29817796/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com