Ajax 在 C# Code Behind 中调用没有命中 webmethod
Ajax call not hitting the webmethod in C# Code Behind
早上好。
目前,我的 ajax 调用从 JQuery 转到后面的 C# 代码时遇到问题。成功后它应该 return 函数末尾的真实值。我试过删除类型并将 web 方法更改为 HttpPost header,但我做不到。这是代码示例。
Javascript
var jsonFormValues = JSON.stringify(formValues);
$.ajax({
type:POST,
async: false,
url: "RegistryOpt.aspx/SendOpt",
data: { jsonFormValues: jsonFormValues },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
onWebMethodSucceeded();
}
});
C#
[WebMethod(EnableSession = true)]
public static bool SendOpt(string jsonFormValues)
{
Debug.Assert(!string.IsNullOrEmpty(jsonFormValues));
var fv = Json.Decode<FormValues>(jsonFormValues);
fv.attestationItems = RegistryOpt.FormatAttestation(fv.attestation);
var eb = new EmailBuilder(fv);
return true;
}
我认为问题在于您正在格式化为 JSON 仅参数值。除了 var jsonFormValues = JSON.stringify(formValues);
,您还需要对参数本身使用 JSON.stringify
:
$.ajax({
type:POST,
async: false,
url: "RegistryOpt.aspx/SendOpt",
data: JSON.stringify({ jsonFormValues: formValues }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
onWebMethodSucceeded();
}
});
早上好。 目前,我的 ajax 调用从 JQuery 转到后面的 C# 代码时遇到问题。成功后它应该 return 函数末尾的真实值。我试过删除类型并将 web 方法更改为 HttpPost header,但我做不到。这是代码示例。
Javascript
var jsonFormValues = JSON.stringify(formValues);
$.ajax({
type:POST,
async: false,
url: "RegistryOpt.aspx/SendOpt",
data: { jsonFormValues: jsonFormValues },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
onWebMethodSucceeded();
}
});
C#
[WebMethod(EnableSession = true)]
public static bool SendOpt(string jsonFormValues)
{
Debug.Assert(!string.IsNullOrEmpty(jsonFormValues));
var fv = Json.Decode<FormValues>(jsonFormValues);
fv.attestationItems = RegistryOpt.FormatAttestation(fv.attestation);
var eb = new EmailBuilder(fv);
return true;
}
我认为问题在于您正在格式化为 JSON 仅参数值。除了 var jsonFormValues = JSON.stringify(formValues);
,您还需要对参数本身使用 JSON.stringify
:
$.ajax({
type:POST,
async: false,
url: "RegistryOpt.aspx/SendOpt",
data: JSON.stringify({ jsonFormValues: formValues }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
onWebMethodSucceeded();
}
});