将json字符串作为参数传递给webmethod

将json字符串作为参数传递给webmethod,第1张

将json字符串作为参数传递给webmethod

您在jQuery JSON帖子中缺少内容类型:

contentType: "application/json; charset=utf-8",

请参阅本文。当我遇到类似的问题时,它对我很有帮助:

  • 使用jQuery直接调用ASP.NET AJAX页面方法不再可用
  • 来自Internet存档: 使用jQuery直接调用ASP.NET AJAX页面方法

您无需将scriptManager配置为EnablePageMethods。

另外,您无需在WebMethod中反序列化JSON序列化的对象。让ASP.NET为您做到这一点。将您的WebMethod的签名更改为此(请注意,我在单词“
to”和“ from”后面附加了“
Email”,因为它们是C#关键字,并且不宜使用与关键字相同的名称来命名变量或参数。将需要相应地更改您的Javascript,以便JSON.stringify()可以正确序列化您的字符串:

// Expected JSON: {"toEmail":"...","fromEmail":"...","message":"..."}[WebMethod]public static bool EmailFormRequestHandler(string toEmail, string fromEmail, string message){    // TODO: Kill this pre...    // var serializer = new JavascriptSerializer(); //stop point set here    // serializer.RegisterConverters(new[] { new DynamicJsonConverter() });    // dynamic obj = serializer.Deserialize(json, typeof(object));    try    {        var mailMessage = new MailMessage( new MailAddress(toEmail), new MailAddress(fromEmail)        );        mailMessage.Subject = "email test";        mailMessage.Body = String.Format("email test body {0}" + message);        mailMessage.IsBodyHtml = true;        new SmtpClient(ConfigurationManager.AppSettings["smtpServer"]).Send(mailMessage);        return true;    }    catch (Exception e)    {        return false;    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4934950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存