Maison > Questions et réponses > le corps du texte
P粉4968866462023-09-01 10:39:42
Vous avez créé la variable :
@emlpoyee
Mais vous appelez @Employee
, ce qui sera nul.
Essayez de passer à la variable que vous avez réellement saisie dans l'employé :
@emlpoyee
De plus, je pense que vous avez mal orthographié la variable. Peut-être que vous voulez dire @employé.
Vous avez tout rempli ici :
emlpoyee = await emp.Employee();
Donc, d'après le code que vous avez fourni, appeler @emlpoyee est logique.
Et aussi <div> @Employee ... </div>
改为 <div> @emlpoyee ... </div>
P粉5133162212023-09-01 09:57:36
Votre code n'effectue pas correctement l'injection de service. Je vous présente une méthode que j'utilise et qui fonctionne correctement, j'espère qu'elle vous sera utile.
Tout d'abord, vous devez créer une interface pour votre service :
namespace Hydra.Services { public interface IEmployee { Task<EmployeeModel> GetEmployee(); } }
Vous devez ensuite modifier votre service, en héritant de l'interface ci-dessus, comme suit :
namespace Hydra.Services { public class Employee:IEmployee { public async Task<EmployeeModel> GetEmployee() { // 返回JSON数据 } } }
Maintenant, vous devriez injecter le service dans Startup.cs
或Program.cs
comme ceci :
services.AddScoped<IEmployee,Employee>();
Enfin, vous devez injecter votre service dans le composant requis comme indiqué ci-dessous et l'utiliser facilement :
@page "/" @using Hydra.Services @inherits OwningComponentBase<IEmployee> <div> @company ... </div> <!-- OK,公司详细信息已呈现 --> <div> @Employee ... </div> <!-- System.NullReferenceException: '对象引用未设置为对象的实例。' --> @code { private string company; private EmployeeModel emlpoyee = new EmployeeModel; private IEmployee employeeService => Service; protected override async Task OnInitializedAsync() // 获取公司详细信息 // 这里是问题所在: EmployeeModel emp = new EmployeeModel(); emp.url = "http://google.com"; emlpoyee = await employeeService.GetEmployee(); }
Bien sûr, votre code présente de nombreux problèmes structurels, et vous souhaiterez peut-être simplement spécifier le problème sous forme d'exemple de code. J'ai donc essayé d'expliquer comment cela fonctionne en utilisant votre propre code afin que l'exemple vous soit plus spécifique. .