If语句不能在控制器MVC 5 asp.net中工作

本文关键字:asp net 工作 MVC 语句 不能 控制器 If | 更新日期: 2023-09-27 18:16:27

这是控制器:

int id = 1;
var book = db.books.Where(r => r.bookid == id).First();
string onebook = book.bookid.ToString();
if(onebook != null)
{
    return Content(onebook);
}else
{
    return Content("Noting");
}

如果存在值id(在数据库中),它将结果并显示值

但是如果存在无效值或null我不会得到自定义错误而是得到err:

序列不包含元素

描述:当前web请求执行过程中出现未处理的异常。请查看堆栈跟踪以获得有关错误及其在代码中的起源的更多信息。

Exception Details: System。InvalidOperationException: Sequence不包含任何元素

If语句不能在控制器MVC 5 asp.net中工作

使用FirstOrDefault代替First,如果序列不包含元素,则返回默认值:

var book = db.books.Where(r => r.bookid == id).FirstOrDefault();

或者更简单:

var book = db.books.FirstOrDefault(r => r.bookid == id);