2016-11-06 43 views
-2

这是控制器:if语句不控制器MVC容器内工作5 asp.net

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(内部数据库),这将导致与显示值

但如果有无效值或空我没有得到自定义错误,而是我得到的错误:

序列不包含任何元素

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

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

+1

'.FirstOrDefault()'(不是'.First()') –

回答

1

使用FirstOrDefault代替First,它如果序列不包含任何元素:

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

或者也可以简单返回默认值:

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

如何设置陈述 –

+0

@waliahmad正如你已经或甚至更简单:'return book == null?内容(“没有”):内容(onebook);' –

+0

我做了,但有一些优秀的人投票 –