Blazor 和 Visual Studio 中的 InputFile 在哪里?
Where is InputFile in Blazor and Visual Studio?
据我了解,在 Blazor 中使用 .NET 5 我应该能够使用 InputFile。我没有那个选项。我在 VS 16.8 上,我在 Blazor Web Assembly 项目(使用 .Net Standard 2.1)中安装了 .net 5 SDK,使用 .Net Core Hosted(使用 .Net 5),但 InputFile 未被识别为有效语法。我错过了一些很明显的东西吗?
我认为它应该只在 .razor 文件中“工作”(假设您的目标是 net5.0
)。我在 Blazor Server 应用程序中使用它,没有任何额外的 using
语句。它是 Microsoft.AspNetCore.Components.Forms 命名空间
的一部分
@page "/"
@using server.Data //this is specific to my app
@using server.Data.Util //this too
@inject IJSRuntime js //this is just the js interop
...
<InputFile OnChange="@HandleFileSelectedAsync" />
<section>
@if (_uploading)
{
<p>Uploading...</p>
<div class="loader"></div>
}
...
更新:我还注意到我的项目中有一个 _Imports.razor
文件,它一定是在我创建新项目时由 VisualStudio 创建的。它看起来像这样:
@using System.Net.Http
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms //InputFile in here
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.JSInterop
...
visual studio 的模板尚未更新,因此它仍然以 .NET 标准为目标,而不是 .NET 5。使用本指南 https://www.davideguida.com/how-to-migrate-blazor-webassembly-to-net-5/
根据 Mario 的建议,Blazor 应用程序应该以 .net 5.0 为目标,我转到项目属性,发现它默认以 .net core 3.1 为目标。
将目标更改为 .net 5.0 使其工作。
谢谢!
据我了解,在 Blazor 中使用 .NET 5 我应该能够使用 InputFile。我没有那个选项。我在 VS 16.8 上,我在 Blazor Web Assembly 项目(使用 .Net Standard 2.1)中安装了 .net 5 SDK,使用 .Net Core Hosted(使用 .Net 5),但 InputFile 未被识别为有效语法。我错过了一些很明显的东西吗?
我认为它应该只在 .razor 文件中“工作”(假设您的目标是 net5.0
)。我在 Blazor Server 应用程序中使用它,没有任何额外的 using
语句。它是 Microsoft.AspNetCore.Components.Forms 命名空间
@page "/"
@using server.Data //this is specific to my app
@using server.Data.Util //this too
@inject IJSRuntime js //this is just the js interop
...
<InputFile OnChange="@HandleFileSelectedAsync" />
<section>
@if (_uploading)
{
<p>Uploading...</p>
<div class="loader"></div>
}
...
更新:我还注意到我的项目中有一个 _Imports.razor
文件,它一定是在我创建新项目时由 VisualStudio 创建的。它看起来像这样:
@using System.Net.Http
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms //InputFile in here
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.JSInterop
...
visual studio 的模板尚未更新,因此它仍然以 .NET 标准为目标,而不是 .NET 5。使用本指南 https://www.davideguida.com/how-to-migrate-blazor-webassembly-to-net-5/
根据 Mario 的建议,Blazor 应用程序应该以 .net 5.0 为目标,我转到项目属性,发现它默认以 .net core 3.1 为目标。
将目标更改为 .net 5.0 使其工作。
谢谢!