Blazor 页面中的多个编辑表单

问题描述 投票:0回答:1
asp.net-core blazor editform
1个回答
0
投票

首先需要为参数属性添加FormName。

    [SupplyParameterFromForm(FormName = "Send")]
    public SendMobileDto? SendMobile { get; set; } = new();
    [SupplyParameterFromForm(FormName = "Authenticate")]
    public SendCodeDto? SendCode { get; set; }=new();

但是不幸的是,在SSR中,第二次提交你仍然会出现这个错误。

无法提交表单,因为当前页面上没有具有该名称的表单

https://github.com/dotnet/aspnetcore/issues/55808

在条件下使用SSR EditForm时会出现此问题。您可以尝试不使用该条件的解决方法。相反,使用

hiddien
属性来确保所有表单名称在开始时都能被识别。

 <EditForm Model="@SendCode" OnValidSubmit="Authenticate" FormName="Authenticate" hidden="@(!LoginLevel)">
...
<EditForm Model="@SendMobile" OnValidSubmit="Send" FormName="Send" hidden="@LoginLevel">
...
public bool LoginLevel { get; set; } = false;
...
    public async Task Send(){
        LoginLevel = !LoginLevel;
    }
© www.soinside.com 2019 - 2024. All rights reserved.