如果语句不在控制器mvc 5 asp.net内部工作

时间:2016-11-06 10:53:54

标签: c# asp.net asp.net-mvc linq asp.net-mvc-5

这是控制器:

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我没有得到自定义错误,而是我得到了错误:

  

序列不包含元素

     

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息:System.InvalidOperationException:Sequence不包含任何元素

1 个答案:

答案 0 :(得分:1)

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

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

甚至更简单:

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