获取目录中的所有文件引发错误 - 无法动态创建类型为"Photobx.Pages.Index"的实例。未定义无参数构造函数



我想做一个"图像库";在我的Blazor服务器应用程序中。对于每个文件路径,它应该创建包含本地变量"中的文件路径的CCD_;文件";。

现在它向我抛出了这个错误:MissingMethodException: Cannot dynamically create an instance of type 'Photobx.Pages.Index'. Reason: No parameterless constructor defined.

我的文件在wwwroot/pics中。

这是我的代码:

index剃刀

@foreach(string file in filepaths)
{
<img src="@file"/>
}
@code {
private IWebHostEnvironment Environment;
public List<string> filepaths = new List<string>();
public Index(IWebHostEnvironment _environment)
{
Environment = _environment;
}
public void GetFilePaths()
{
foreach(string file in Directory.GetFiles(Path.Combine(this.Environment.WebRootPath, "pics/")))
{
filepaths.Add(file);
Console.WriteLine(file + " was added");
}
}
protected override void OnParametersSet()
{
GetFilePaths();
}
}

不能从构造函数向Blazor组件注入参数。

您可以使用@inject剃须刀指令

@inject IWebHostEnvironment Environment
@foreach(string file in filepaths)
{
<img src="@file"/>
}
...

或CCD_ 4属性。

public class ComponentBase : IComponent
{
[Inject]
protected IWebHostEnvironment Environment { get; set; }
}

有关此主题的详细信息,请查看microsoft文档。

相关内容

  • 没有找到相关文章

最新更新