2 回答
TA贡献1891条经验 获得超3个赞
行。经过更多的测试和研究,我最终访问了:https : //www.learnrazorpages.com/security/request-verification
我发现在剃刀页面上添加了令牌,防止没有它的帖子。
因此,您可以忽略全局级别或类级别的令牌验证,例如:
[IgnoreAntiforgeryToken(Order = 1001)]
public class IndexModel : PageModel
{
public void OnPost()
{
}
}
或者你可以像我在下面做的那样:
首先,将方法重命名为 OnPost 而不是 OnGet:
public PartialViewResult OnPostResultsPartial(RequestResultModel dto)
然后在 javascript 调用中包含如下所示的令牌:
$('#btnGoToResults').click(function (e) {
var dto = {
ID: 1,
CODE: 5
};
$('#divPerformanceResults').load('/PerformanceSearch?handler=ResultsPartial',
{ dto: dto, __RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val() });
}
就是这样!它现在将 javascript 对象与页面模型中的类正确映射 :) 希望这会帮助其他人!
TA贡献1993条经验 获得超5个赞
您的第一个版本 .load() 很好,如果 jquery load() 方法检测到 dto 参数为对象,它将执行 http post:
$('#divPerformanceResults').load('/PerformanceSearch?handler=ResultsPartial', dto);
然后您可以将 [HttpPost] 属性添加到您的 Action 以接受 post 方法
[HttpPost]
public PartialViewResult OnGetResultsPartial(WebApplication1.Models.RequestResultModel dto)
{
添加回答
举报