C# 使用异步时无法清除模式

C# 使用异步时无法清除模式,c#,asp.net-core,blazor,blazor-server-side,C#,Asp.net Core,Blazor,Blazor Server Side,我正在使用Blazor框架 我有一个EntryForm,用于在运行时生成几个文本框 <!-- Input fields --> @for (var i = 0; i < 6; i++) { var index = i; <div class="form-row"> <div class="col-sm-8" style="float:left">

我正在使用Blazor框架

我有一个EntryForm,用于在运行时生成几个文本框

<!-- Input fields -->
@for (var i = 0; i < 6; i++)
{
    var index = i;
    <div class="form-row">
        <div class="col-sm-8" style="float:left">
            <div class="justify-content-center mb-2">
                <input type="text" class="form-control form-control-sm border border-secondary" @bind="myMod.Code[index]" />
            </div>
        </div>
        <div class="col-sm-4" style="float:left">
            <div class="justify-content-center mb-2">
                  <input type="text" class="form-control form-control-sm border border-secondary" @bind="myMod.Weight[index]" @bind:event="oninput" />
            </div>
        </div>
    <div/>
}
它不会清除模型,因此保存后,字段将保留以前输入的值


如何清除模型,从而清除所有字段?

您不必等待任务。Run()。这意味着在重新分配myMod之前,属于ButtonClick的渲染已经在运行

但是更好的选择是根本不使用Task.Run()

异步任务保存()
{
...
if()
{
//运行(异步()=>wait ConfirmSave());
等待确认保存();
myMod=新的StudentModel();
} 
其他的
//运行(async()=>wait CreateFile());
等待CreateFile();
}

非常感谢。成功了。唯一的问题是,如果我不想将另存为异步,只想调用ConfirmSave,那么选项是什么?为什么不异步?Blazor对此非常支持:
@onclick=“Save”
就是您所需要的一切。您确实需要一个
异步任务
顶级方法。因为从SAVE方法我也可以调用非异步方法。虽然这些都是通过调用async ConfirmSave来实现的,但我想确保它们将来不会崩溃,将来也不会崩溃。在可以的时间和地点使事情异步。确保您拥有完整的等待“链”,并将“缺少等待”和“未等待”警告视为错误。并且不要使用Task.Run()。
@code {
    private StudentModel myMod= new StudentModel();
    private void Save()
    {
            bool askUser = ValidateEntry();

            if (askUser)
            {
                Task.Run(async () => await ConfirmSave());
                myMod = new StudentModel();
            }
            else
                Task.Run(async () => await CreateFile());
        }

   async Task ConfirmSave()
    {
        bool confirmed = await JsRuntime.InvokeAsync<bool>("confirm", $"Are you sure?");
        if (confirmed)
        {
            await CreateFile();
        }
    }
}
myMod = new StudentModel()