Mor*_*ens 0 c# .net-core blazor
我想在剃刀组件中拆分代码。Html 标记和逻辑。我真的是新的 C#。当我像这样尝试时
TaskManagement.razor.cs:
using Microsoft.AspNetCore.Components;
using System.Threading.Tasks;
using MintWebApp.Services;
using MintDataService;
namespace WebApp.Pages
{
partial class TaskManagement
{
public TaskService _taskService;
public TaskManagement(TaskService taskService)
{
_taskService = taskService;
}
protected override async Task OnInitializedAsync()
{
MintTaskFromJson task = await _taskService.GetExampleTask();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
MissingMethodException: No parameterless constructor defined for type
'WebApp.Pages.TaskManagement'.
Run Code Online (Sandbox Code Playgroud)
哪个是将服务注入partinal类而不在razor文件中注入服务的最佳方式
你应该使用Inject属性
[Inject]
public TaskService TaskService { get; set; }
Run Code Online (Sandbox Code Playgroud)
并且不要忘记为您的服务添加依赖注入
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<TaskService, TaskService>();
}
Run Code Online (Sandbox Code Playgroud)
您可以查看解释它的文档。
还找到了解释它的教程。
你还应该注意到,你也可以将它注入到.razor文件中
@inject TaskService TaskService
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1212 次 |
| 最近记录: |