我正在尝试将ajax发布请求发送到剃须刀页面。此剃刀页面具有[BindProperty]的一些公共属性。对于ajax请求,我尝试使用命名处理程序。
@page "{title}"
[BindProperty]
public BookViewModel BookModel { get; set; }
public IActionResult OnPostMarkdownInput(string title)
{
return new EmptyResult();
}
在客户端,发送空数据(+ / title)以BadRequest结尾。但是以绑定BookModel的形式发送它是可行的。因此,我怀疑[BindProperty]要求甚至为namedHandler都绑定此属性。但是,即使将其删除,问题仍然存在。
如何添加不需要绑定任何属性的namedHandler?还是为什么在没有数据发送时收到BadRequest?
谢谢!
答案 0 :(得分:1)
Razor页面中AJAX发起的请求中的错误请求响应通常是缺少请求验证令牌的症状,根据您所发出的请求的类型,您需要将其包括为表单值或标头。如果要发布JSON,则需要添加标题:
type: 'radar',
data: {...},
options: {
scale: {
ticks: {
reverse: true,
beginAtZero: false,
min: 1
}
}
}
否则,您只需要确保隐藏的字段包含在发布的值中即可。
在此处查看有关请求验证的更多信息:https://www.learnrazorpages.com/security/request-verification