【发布时间】:2021-08-22 03:43:28
【问题描述】:
如果我将 Ajax 类型更改为GET,它可以工作,但要求是使用POST 类型。
这是在 razor 页面中创建的方法。
public JsonResult OnPostRLUAddUpdate(RluModel model)
{
model.LastModifiedBy = User.Identity.Name;
var obj = _iRLURepo.RLUAddUpdate(model);
return new JsonResult(obj.Result);
}
Ajax 代码:
var model = {
"RLUID": $("#RLUID").val(),
"RLUNo": $("#RLUNo").val(),
"RLUAcres": $("#RLUAcres").val(),
"TractName": $("#TractName").val(),
"CountyID": $("#CountyID").val(),
"ClientPropertyID": $("#ClientPropertyID").val(),
"DisplayDescription": $("#DisplayDescription").val(),
"InternalNotes": $("#InternalNotes").val()
}
$.ajax({
type: 'Post',
url: 'RLU?handler=RLUAddUpdate',
// async: true,
data: JSON.stringify({ model }),
headers: { "XSRF-TOKEN": $('input:hidden[name="__RequestVerificationToken"]').val() },
//contentType: "application/json; charset=utf-8",
contentType: 'application/x-www-form-urlencoded',
dataType: "json",
success: OnRLUAddUpdateSuccess,
complete: OnCompleteRLU,
error: OnErrorRLU
});
Startup.cs
services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");
【问题讨论】:
-
我试过 [FromBody] 但模型参数变为空
-
在 html 页面中已添加 AntiforgeryToken。
-
你能显示
RluModel吗?
标签: c# jquery asp.net-core asp.net-ajax razor-pages