ASP .Net Core Razor asp-page-handler 不工作

Posted

技术标签:

【中文标题】ASP .Net Core Razor asp-page-handler 不工作【英文标题】:ASP .Net Core Razor asp-page-handler not working 【发布时间】: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" 放在提交按钮标签内,它工作正常。 【参考方案1】:

我认为我错过了一些愚蠢的东西。在我的页面上方有一个 div 标签,它有一个额外的引号,它不知何故导致我的标签无法正常工作......浪费了一个小时的时间。

<div class="container" data-aos="fade-up" ">

【讨论】:

以上是关于ASP .Net Core Razor asp-page-handler 不工作的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core Razor 页面与完整 MVC Core [关闭]

Asp.net core razor pages 加载部分页面

ASP .NET Core Razor 页面中的授权

Asp.Net Core 上的 Razor 页面 - 添加了 Razor 页面但无法让页面显示

Asp .NET Core 2.2 Razor 页面布局和局部

Asp.Net Core-几行代码解决Razor中的嵌套if语句