2016-11-06 57 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

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