首页 > 解决方案 > 例外:“<”是一个无效的值开始

问题描述

我有一个带有控制器方法的 Blazor Webassembly 项目,如下所示:

[HttpGet]
    public async Task<List<string>> GetStatesForProfile()
    {
        IConfigurationSection statesSection = configuration.GetSection("SiteSettings:States");
        var sections = statesSection.GetChildren();
        var states = statesSection.GetChildren().Select(s => s.Key).ToList<string>();
        return states;            
    }

剃须刀页面调用此方法:

private async Task<bool> GetStatesModel()
{
    try
    {
        States = await http.GetJsonAsync<List<string>>("api/account/getstatesforprofile");            
        ...
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Exception: {ex.Message}, Inner: {ex.InnerException.Message}");
    }

我得到这个例外:

例外:“<”是值的无效开始。

我从 appsettings.json 文件中读取了这些值,并且值中没有“<”。

{      
  "SiteSettings": {    
    "States": {
      "New York": ["NYC"],
      "California": ["Los Angeles", "San Francisco"]
    }
 }

另外我在控制器方法中放置了一个断点,它没有命中。这是什么错误?是解析json吗?以及如何解决这个问题?

标签: jsonblazorblazor-webassembly

解决方案


您收到的响应很可能不是您请求的端点html的实际格式。JSON请检查一下。

作为 HTML 通常以<html>标记开头,JSON 验证器在第一个字符上失败。


推荐阅读