问题描述
如果我们传递一个对象,什么是JsonStringfy()的返回数据类型?我应该在我的[WebMethod]中传递什么参数的数据类型,以便它可以获取从客户端页面返回的数据。
列出了两个功能。
1)Ajax功能
var em = {};
em.EnableSSL = enableSsl;
em.Mode = emailMode;
em.MailHost = smtpHost;
em.MailPort = mailPort;
em.MailFrom = mailFrom;
em.MailTo = mailTo;
em.MailCc = mailCc;
em.MailBcc = mailBcc;
em.ExceptionMailTo = exceptionMailTo;
em.ExceptionMailCc = exceptionMailCc;
em.ExceptionMailBcc = exceptionMailBcc;
$.ajax({
type: "Post",
url: "PageName/MethodName",
data: '{em : "' + JSON.stringify(em) + '"}',
contentType: "application/json; charset=utf-8",
success: function (data) {
var obj = JSON.parse(data.d);
console.log(obj);
},
error: function (errorData) {
console.log(errorData.status);
}
});
2)在ajax调用上执行的服务器端方法。
[WebMethod]
public static string MethodName(//Datatype? em)
{
var emailSettings = em;
{
}
var jsonSerializer = new JavaScriptSerializer();
var jsonData = jsonSerializer.Serialize("Hi");
return jsonData;
}
1楼
Bert Cushman
0
2016-06-16 12:55:17
我们已经成功地将类型设置为Dictionary。 所以:
[WebMethod]
public static string MethodName(Dictionary<string, object> em)
我的理解是,MS将使用您选择的类型进行实际的反序列化,因此其他类型也可以使用,但是这似乎是最佳选择。