Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取“的错误消息”;CS1503参数1:无法从';System.Threading.Tasks.Task<;BookListRazor.Model.Book>';至';BookListRazor.Model.Book';_C#_Asp.net_.net_Asp.net Mvc_Razor - Fatal编程技术网

C# 获取“的错误消息”;CS1503参数1:无法从';System.Threading.Tasks.Task<;BookListRazor.Model.Book>';至';BookListRazor.Model.Book';

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

我试图遵循一个在线来源(Udemy类)的教程,我的代码中似乎有一个错误,我试图搜索,甚至多次查看,以了解为什么会出现错误

首先,我对c#/.net/razor是个新手,这是课堂上正在教授的技术堆栈。讲师没有收到代码中的错误,因此我迷路了(他似乎也没有回应任何人)

我有一个叫做BookController的控制器,它由下面的代码组成

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
,当然就这么简单。非常感谢。