C# 获取“的错误消息”;CS1503参数1:无法从';System.Threading.Tasks.Task<;BookListRazor.Model.Book>';至';BookListRazor.Model.Book';
我试图遵循一个在线来源(Udemy类)的教程,我的代码中似乎有一个错误,我试图搜索,甚至多次查看,以了解为什么会出现错误 首先,我对c#/.net/razor是个新手,这是课堂上正在教授的技术堆栈。讲师没有收到代码中的错误,因此我迷路了(他似乎也没有回应任何人) 我有一个叫做BookController的控制器,它由下面的代码组成C# 获取“的错误消息”;CS1503参数1:无法从';System.Threading.Tasks.Task<;BookListRazor.Model.Book>';至';BookListRazor.Model.Book';,c#,asp.net,.net,asp.net-mvc,razor,C#,Asp.net,.net,Asp.net Mvc,Razor,我试图遵循一个在线来源(Udemy类)的教程,我的代码中似乎有一个错误,我试图搜索,甚至多次查看,以了解为什么会出现错误 首先,我对c#/.net/razor是个新手,这是课堂上正在教授的技术堆栈。讲师没有收到代码中的错误,因此我迷路了(他似乎也没有回应任何人) 我有一个叫做BookController的控制器,它由下面的代码组成 enter code here using System; using System.Collections.Generic; using System.Linq
enter code here
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BookListRazor.Model;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
namespace BookListRazor.Controllers
{
[Route("api/Book")]
[ApiController]
public class BookController : Controller
{
private readonly ApplicationDbContext _db;
public BookController(ApplicationDbContext db)
{
_db = db;
}
[HttpGet]
public async Task<IActionResult> GetAll()
{
return Json(new { data = await _db.Book.ToListAsync() });
}
[HttpDelete]
public async Task<IActionResult> Delete(int id)
{
var bookFromDb = _db.Book.FirstOrDefaultAsync(u => u.Id == id);
if (bookFromDb == null)
{
return Json(new { success = false, message = "Error while Deleting" });
}
_db.Book.Remove(bookFromDb); //This is where the error is being produced at in the code from the parameter that is being provide.
await _db.SaveChangesAsync();
return Json(new { success = true, message = "Delete successful" });
}
}
}
在此处输入代码
使用制度;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
使用BookListRazor.Model;
使用Microsoft.AspNetCore.Mvc;
使用Microsoft.EntityFrameworkCore;
命名空间BookListRazor.Controllers
{
[路线(“api/手册”)]
[ApiController]
公共类BookController:控制器
{
私有只读应用程序dbContext_db;
公共图书控制器(ApplicationDbContext数据库)
{
_db=db;
}
[HttpGet]
公共异步任务GetAll()
{
返回Json(new{data=await{u db.Book.ToListAsync()});
}
[HttpDelete]
公共异步任务删除(int-id)
{
var bookFromDb=\u db.Book.FirstOrDefaultAsync(u=>u.Id==Id);
if(bookFromDb==null)
{
返回Json(新的{success=false,message=“删除时出错”});
}
_db.Book.Remove(bookFromDb);//这是在提供的参数的代码中产生错误的地方。
等待_db.SaveChangesAsync();
返回Json(新的{success=true,message=“Delete successful”});
}
}
}
您在这一行中缺少了一个wait
:
var bookFromDb = await _db.Book.FirstOrDefaultAsync(u => u.Id == id);
更一般地说,当你发现自己有一个
任务
时,当你期待一个T
时,你就会错过一个等待
的地方,它从任务
中打开了T
,当然就这么简单。非常感谢。