无法将类型 System.Collections.generic 隐式转换为 <ProjectNamespace.List>

Cannot implicitly convert type System.Collections.generic to <ProjectNamespace.List>

namespace Automated_VotingSystem.Models
{
    public class DisplayCandidatesList
    {
        public List<DisplayCandidates>? DisplayCandidateslist { get; set;}
    }
}

namespace Automated_VotingSystem.Models
{
    public partial class DisplayCandidates
    {
        public int VoterId { get; set; }
        public int? CollegeId { get; set; }
        public int? EventId { get; set; }
        public int CandidateId { get; set; }
        public string? Manifesto { get; set; }
        public byte[]? Symbol { get; set; }
        public string? Symbol_path { get; set; }        
    }
}

public List<DisplayCandidates> DisplayCandidateslist { get; set; }

[HttpGet("[action]/{GetAllCandidates}")]
public async Task<DisplayCandidatesList> DisplayAllCandidates()
{
    var list_of_candidates = (from c in _context.CandidateTables
                              join ac in _context.ApprovedCandidateTables on c.CandidateId equals ac.CandidateId
                              join s in _context.SymbolTables on c.SymbolId equals s.SymbolId
                              where ac.Approval == true
                              select new
                              {
                                  candidate_id = ac.CandidateId,
                                  manifesto = c.Manifesto,
                                  symbol_path = s.Symbol_path
                              }).ToList();
    return  list_of_candidates;
}

第一个片段是我的 class,第二个片段是我的模型,第三个片段是我的控制器。执行代码时,我在返回候选列表后出现错误

Cannot implicitly convert type 'System.Collections.Generic.List<<anonymous type: int? candidate_id, string manifesto, string symbol_path>>' to 'Automated_VotingSystem.Models.DisplayCandidatesList'

我不确定你想在这里做什么,但看起来 ;您不需要“DisplayCandidatesList”class,您只需要一个“DisplayCandidates”class。 如果你在另一个 class 中使用这个 class 作为列表的形式,那么使用那个列表而不是列表? ,不过我猜这里你不需要那个。

你的列表方法可以 return "Task" 那样, 我建议你学习 C# 中的集合和泛型主题 并且不要在控制器操作中使用该命名检查命名标准 https://restfulapi.net/resource-naming/

您的 DisplayAllCandidates 方法需要一个 DisplayCandidates 列表。因此,使用显式类型 DisplayCandidates 而不是匿名并将操作 return 类型更改为 List< DisplayCandidate >>。并且由于它是异步操作,因此最好使用异步 return

public async Task<List<DisplayCandidates>> DisplayAllCandidates()
{
    return await (from c in _context.CandidateTables
                              
                         ....
                              select new DisplayCandidates
                              {
                                  CandidateId = ac.CandidateId,
                                  Manifesto = c.Manifesto,
                                  Symbol_path = s.Symbol_path
                              }).ToListAsync();