我正在使用 Asp.net Core Razor Pages,并希望在单击按钮时将一些数据发布到服务器,但我无法在调用方法中获取客户端值,它始终为空:
<button type="button" class="btn btn-primary" onclick="save1()">Submit</button>
我的js代码:
function save1() {
var order = { SerialNo: '1'};
$.ajax({
type: "POST",
url: "@Url.Page("Index","Save1")",
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
data: JSON.stringify(order),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert('Success!');
},
failure: function (response) {
alert('error!');
}
});
}
我的页面处理程序:
public async Task<IActionResult> OnPostSave1Async(CreateOrderViewModel order)
{
//some code
}
和我的 View 模型:
public class CreateOrderViewModel
{
public string SerialNo { get; set; }
...
}
最佳答案
您可能需要添加 [FromBody] 来接收发送的值,如下所示:
型号:
public class Test {
public string SerialNo { get; set; }
}
Controller :
[HttpPost]
public IActionResult Index([FromBody]Test order)
{
return View();
}
public IActionResult Index()
{
return View();
}
查看:
<button type="button" class="btn btn-primary" onclick="save1()">Submit</button>
<script>
function save1() {
var order = { SerialNo: '1' };
$.ajax({
type: "POST",
url: "test/Index",
data: JSON.stringify(order),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert('Success!');
},
failure: function (response) {
alert('error!');
}
});
}
</script>
结果:
关于asp.net-core - 使用 Razor 页面的 Ajax 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69758377/