Asp.Net Core 3.1中ApiResult无法隐式转换为string的错误求助
解决"Cannot implicitly convert ApiResult to string"错误
错误原因
你的CreateBook方法声明返回类型为Task<string>,但成功分支返回的是ApiResult实例,失败分支返回的是字符串,两种返回值类型不兼容,导致编译器抛出类型转换错误。
解决方案
统一方法的返回类型为Task<ApiResult>,无论成功还是失败都返回ApiResult对象,保证类型一致:
public async Task<ApiResult> CreateBook(BooksCreateEditViewModel ViewModel) { if (await _UW.BookRepository.CreateBookAsync(ViewModel)) { return new ApiResult { IsSuccess = true, Message = new List<string> { "Your job has done" } }; } else { return new ApiResult { IsSuccess = false, Message = new List<string> { "We got an error!!!" } }; } }
说明
修改后,Asp.Net Core会自动将ApiResult序列化为JSON格式返回给客户端,符合API接口统一响应结构的规范,同时彻底解决了类型不匹配的问题。
内容的提问来源于stack exchange,提问作者Ali reza Soleimani Asl
相关产品推荐
相关产品推荐

