无法在 Blazor 组件中调用服务
P粉351138462
P粉351138462 2023-08-31 12:01:02
[HTML讨论组]

我有一个类似下面这样的服务:

namespace Hydra.Services
{
  public class Employee
  {
    public string url { get; set; }

    public async Task<EmployeeModel> GetEmployee(){
      // 返回JSON数据
    }
  }
}

我想在我的Commpany组件中调用这个服务:

@page "/"

<div> @company ... </div> <!-- OK,公司详情已经渲染 --> 
<div> @Employee ... </div>  <!-- System.NullReferenceException: '对象引用未设置为对象的实例。' -->

@code {

  company string; 
  emlpoyee string; 
  protected override async Task OnInitializedAsync()
    using (HttpClient client = new HttpClient())
    {
      // 获取公司详情


      // 这里是问题所在:
      EmployeeModel emp = new Employee();
      emp.url = "http://google.com";
      emlpoyee = await emp.Employee(); 
    }
  }
}

所以,显示公司的逻辑没有任何问题,但是我在using()内部调用的Employee服务似乎不起作用。除了错误之外,我不知道还有什么问题。

这不是忘记包含模型或注入服务的问题。

我只是一个初学者,所以问题比较简单。

P粉351138462
P粉351138462

全部回复(1)
P粉496886646

您创建了变量:

@emlpoyee

但您正在调用 @Employee,这将是 null。

尝试切换到您实际放入员工的变量:

@emlpoyee

另外,我认为您拼写了变量错误。也许您的意思是 @employee。

您在这里填充了所有内容:

emlpoyee = await emp.Employee();

因此,从您提供的代码来看,调用 @emlpoyee 是有意义的。

所以将 <div> @Employee ... </div> 改为 <div> @emlpoyee ... </div>

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号