我想做一个"图像库";在我的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文档。