【发布时间】:2021-07-04 17:15:12
【问题描述】:
我创建了一个全新的 ASP .NET Core Razor Web 应用程序,当我使用自定义 asp-page-handler 发布时,会点击 OnPost(),而不是 OnPostContact()。这是一个如此简单的形式,所以我一定忽略了一些简单的东西。
我的 taghelpers 肯定有问题,因为我可以得到一个模型值来显示如下:
@Model.FirstName
但不是这样的:
<input asp-for="FirstName" type="text" class="form-control" />
这是代码,我看不出这里有什么问题:
索引.cshmtl:
<form method="post" asp-page-handler="Contact">
@Html.AntiForgeryToken()
<div asp-validation-summary="ModelOnly"></div>
<span asp-validation-for="FirstName"></span>
<input type="text" asp-for="FirstName" />
<button type="submit">Send</button>
</form>
索引.cshtml.cs:
public IActionResult OnPost()
{
return Page();
}
public IActionResult OnPostContact()
{
return Page();
}
_ViewImports.cshtml:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
【问题讨论】:
-
您是否尝试删除@Html.AntiForgeryToken()
-
没有 @Html.AntiForgeryToken() 我得到一个 400 错误
-
一般你不需要
@Html.AntiForgeryToken,它是自动添加的。我确实将asp-page-handler="Contact"放在提交按钮标签内,它工作正常。
标签: asp.net-core razor