【问题标题】:if statement is not working inside controller mvc 5 asp.net [duplicate]if语句在控制器mvc 5 asp.net中不起作用[重复]
【发布时间】:2017-03-19 19:28:52
【问题描述】:

这是控制器:

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:序列不包含任何元素

【问题讨论】:

  • .FirstOrDefault()(不是.First()

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


【解决方案1】:

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

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

甚至更简单:

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

【讨论】:

  • if statment如何设置
  • @waliahmad 正如你已经做过的,甚至更简单:return book == null ? Content("Nothing") : Content(onebook);
  • 我做了,但有一些好人投了反对票
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-28
  • 2012-11-30
  • 2023-02-06
  • 2021-08-15
  • 1970-01-01
  • 2021-01-28
相关资源
最近更新 更多