asp.net 如何强制Blazor应用接受POST请求?

epggiuax  于 2022-12-30  发布在  .NET
关注(0)|答案(1)|浏览(308)

我需要我的应用允许来自任何地方的POST请求,而不会引发400错误请求错误。我使用的是<form action='/anotherurl' method='post'>,需要能够在应用的另一个页面上使用通过POST传递的参数。我不能使用GET,因为我不希望参数在URL中可见。
我试过在页面上添加@attribute [IgnoreAntiforgeryToken],但是没有效果。有没有办法强制Blazor允许POST请求通过?
编辑:以下是完整的表单

<form action="/ClientReports" method="post" target="_blank">
    @foreach (var id in SelectedClientIds)
    {
        <input type="hidden" id="Params" name="Params" value="@id">
    }
    <input type="submit" value="Client Reports">
</form>

这些参数被添加到隐藏的输入中,然后像普通的HTML表单一样提交,但是当导航发生时,结果是一个400错误。

dwbf0jvd

dwbf0jvd1#

@attribute [IgnoreAntiforgeryToken]添加到_Host.cshtml文件将允许HTML表单POST到Blazor Server应用程序。
注:由于Blazor是一个SPA,这将在全局范围内关闭防伪功能,因此需要更多的代码来关闭单个页面的防伪功能。

相关问题