I am building a Blazor (Blazor server) project in .NET 6 and I have come to a problem, in one component I can declare a variable, but when I try to do something with that variable immediately after I declare it, it "does not exist in the current context".
Resources.razor
@using Models
<div>
<h2>Resources</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>State</th>
</tr>
</thead>
<tbody>
@foreach (Resource resource in ResourceList)
{
<tr>
<td>@resource.Name</td>
<td>@resource.DisplayStatus</td>
</tr>
}
</tbody>
</table>
</div>
@code {
public List<Resource> ResourceList { get; set; }
ResourceList = new List<Resource>(); // this line throws an error (IDE1007: the name 'ResourceList' does not exist in the current context)
ResourceList.Add(new Resource()); // this one too
}
I have tried moving it to the new file Resources.razor.cs but it has the same problem. It is not working not just for List<Resource> but even for string or int. I have also tried to make a completely new razor component and try to rewrite it but it still does not work.
Place the logic for initializing and assigning value in the OnInitialized{Async} method.
@code {
public List<Resource> ResourceList { get; set; }
protected override void OnInitialized()
{
ResourceList = new List<Resource>();
ResourceList.Add(new Resource());
}
}
Or you can directly initialize the ResourceList when it is declared.
@code {
public List<Resource> ResourceList { get; set; } = new List<Resource>() { new Resource() };
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With