0

BlazorInputFile を使用する単純なファイル アップロードがあります。ファイルを追加すると、指定した onChange 関数にヒットしますが、ファイルの名前が画面に表示されず、フォームを送信しようとすると、空であると表示されます。

フォーム:

       <EditForm Model="@Item" OnValidSubmit="@SubmitForm">
            <DataAnnotationsValidator />
            <div class="modal-body">
                <div class="row">
                    <div class="col-md-6">
                        <div class="form-group">
                            <label>File</label>
                            <InputFile OnChange="LoadFile"/>
                        </div>
                    </div>
                </div>
            </div>
            <div class="modal-footer">
                <button type="submit" class="btn btn-success">Save changes</button>
                <button type="button" class="btn btn-secondary" data-dismiss="modal" @onclick="() => Close()">Close</button>
            </div>
            <ValidationSummary />
        </EditForm>

@code {
public FormItem Item = new FormItem();

private IFileListEntry UploadedFile;

// So on change it gets in here and I can see that we have a item uploaded
private async Task LoadFile(IFileListEntry[] files)
{
    if (files.Count() != 0)
    {
        UploadedFile = files.FirstOrDefault();
    }

    this.StateHasChanged();
}

protected async Task SubmitForm(EditContext editContext)
{

}
}

Itemクラスには 1 つの属性があります。

    [Required]
    public IFileListEntry File { get; set; }

これは BlazorInputFile コンポーネント自体の問題である可能性があることを確認しましたが、他の誰かがこの問題に遭遇したかどうか疑問に思っていましたか?

現在、ASP.Net Core 3.1 で Blazor を実行しています

4

2 に答える 2