我想在剃刀组件中拆分代码。Html标记和逻辑。我真的是个新C#。当我像这个一样尝试时
任务管理.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();
}
}
}
我收到这个错误
MissingMethodException: No parameterless constructor defined for type
'WebApp.Pages.TaskManagement'.
在不将服务注入剃刀文件的情况下,将服务注入partinal类的最佳方式是什么
您应该使用Inject
属性
[Inject]
public TaskService TaskService { get; set; }
别忘了将依赖注入添加到您的服务中
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<TaskService, TaskService>();
}
你可以看看解释它的文档。
还找到了解释它的教程。
编辑:
您还应该注意到,您还可以将其注入.razor
文件中
@inject TaskService TaskService