Ajax 调用 asp.net - 变量始终为空
Ajax call to asp.net - variables always null
我无法 ajax 将值传输到我的 asp.net razorpage 处理程序。
它总是在 razorpage 端接收空值。否则它会工作并且 javascript 没有正确响应。
调用了 C# 函数 "OnPost",但参数始终为空值。
我在这里错过了什么?我看了很多例子,但无法弄清楚。我是否遗漏了必须在项目中设置的内容?如果我应该提供更多代码,请告诉我!
public class TestValues
{
public string test1 { get; set; }
public string test2 { get; set; }
public string test3 { get; set; }
}
public class Conf_Parity : PageModel
{
public static JsonResult OnPost(TestValues myString)
{
var test = myString;
return new JsonResult("");
}
}
}
var output = {
test1: 'hallo',
test2: 'peter',
test3: 'how are you'
};
console.log(output);
$.ajax({
type: "POST",
url: "Conf_Parity",
dataType: "json",
data: JSON.stringify(output),
contentType: "application/json; charset=utf-8",
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
failure: function (response) {
alert(response);
}
});
我通常不会 post JSON 页面处理程序。很少有这样做的充分理由。在将 JSON.stringify
方法应用于它之前,我只需要 post 表单数据。我只会 post JSON 到需要它的 API 端点。
但是如果你想 post JSON 无论如何,你需要从请求主体访问 JSON 并反序列化它:
public async Task OnPostAsync()
{
using (var reader = new StreamReader(Request.Body, Encoding.UTF8))
{
var body = await reader.ReadToEndAsync();
var testValues = JsonConvert.DeserializeObject<TestValues>(body);
// do something with testValues.test1 etc.
}
}
注意 - OnPostAsync
处理程序没有参数。模型绑定不适用于 JSON.
我无法 ajax 将值传输到我的 asp.net razorpage 处理程序。 它总是在 razorpage 端接收空值。否则它会工作并且 javascript 没有正确响应。
调用了 C# 函数 "OnPost",但参数始终为空值。
我在这里错过了什么?我看了很多例子,但无法弄清楚。我是否遗漏了必须在项目中设置的内容?如果我应该提供更多代码,请告诉我!
public class TestValues
{
public string test1 { get; set; }
public string test2 { get; set; }
public string test3 { get; set; }
}
public class Conf_Parity : PageModel
{
public static JsonResult OnPost(TestValues myString)
{
var test = myString;
return new JsonResult("");
}
}
}
var output = {
test1: 'hallo',
test2: 'peter',
test3: 'how are you'
};
console.log(output);
$.ajax({
type: "POST",
url: "Conf_Parity",
dataType: "json",
data: JSON.stringify(output),
contentType: "application/json; charset=utf-8",
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
failure: function (response) {
alert(response);
}
});
我通常不会 post JSON 页面处理程序。很少有这样做的充分理由。在将 JSON.stringify
方法应用于它之前,我只需要 post 表单数据。我只会 post JSON 到需要它的 API 端点。
但是如果你想 post JSON 无论如何,你需要从请求主体访问 JSON 并反序列化它:
public async Task OnPostAsync()
{
using (var reader = new StreamReader(Request.Body, Encoding.UTF8))
{
var body = await reader.ReadToEndAsync();
var testValues = JsonConvert.DeserializeObject<TestValues>(body);
// do something with testValues.test1 etc.
}
}
注意 - OnPostAsync
处理程序没有参数。模型绑定不适用于 JSON.