【问题标题】:Sequence Contains No elements? Impossible to handle error?序列不包含元素?无法处理错误?
【发布时间】:2020-03-18 17:26:40
【问题描述】:

我有下一个 JavaScript:

var document = 0;
if ('@Model.Article.ListFiles.First()' != null) {
document = '@Model.Article.ListFiles.First()';  }

Article.ListFiles.First() 此测试的计数值为“0”,当然我收到错误

"System.InvalidOperationException: '序列不包含元素'"

但问题是我无法处理此错误,我尝试使用try/catch 但不起作用。还有其他运营商(!= null, != '', != '0', != 0)

【问题讨论】:

  • "我尝试了 try/catch" 你在哪里把它们放在 c# 代码或 js 中?
  • 尝试将 First 更改为 FirstOrDefault
  • 这能回答你的问题吗? LINQ - Sequence contains no elements
  • 注意:您的 javascript if 语句正在尝试检查是否是 string != null,这将 始终 i> 为真,无论你在字符串中输入什么值。
  • if ('@Model.Article.ListFiles.Any(f => f != null)' === 'True') {怎么样

标签: javascript c# razor


【解决方案1】:

这解决了我的问题:

var document = '@Model.Article.ListFiles.FirstOrDefault()';

感谢大家,特别是asawyer!!!

【讨论】:

    【解决方案2】:

    先创建一个变量,然后检查它:

    var a = '@Model.Article.ListFiles.First()';
    var document = ''; 
    if ( a !== null ) {
      document = a;
    }
    

    【讨论】:

    • 好吧,它也永远不会为空,因为它是一个包含在字符串中的服务器值。它总是一个字符串。
    • 正是异端所说的(请参阅我之前在上述问题下的评论)。此外,您仍在在可能为空的集合上执行.First()
    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多