首先需要为参数属性添加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;
}