【问题标题】:sequence contains no elements in razorrazor 中的序列不包含任何元素
【发布时间】:2014-03-04 01:33:26
【问题描述】:

我有一个清晰的视图,应该返回一个客户列表:

@model IEnumerable<myapp.Models.customers>
@{
    ViewBag.Title = "customers";
}

@Model.First().Order.Name

显示客户详细信息工作正常,这不是问题。我想在顶部显示一次订单的名称。订单与客户的关系是一对多,因此某些订单可以没有客户。那是我收到此错误的时候:

[InvalidOperationException: Sequence contains no elements]
   System.Linq.Enumerable.First(IEnumerable`1 source) +269

问题是如何在 Razor 视图中检查这一点并显示用户友好的消息?

【问题讨论】:

    标签: asp.net asp.net-mvc-4 razor-2


    【解决方案1】:

    您始终可以通过检查第一个客户的订单是否为空来评估第一个订单...

     @{
            if(Model.FirstOrDefault() != null && Model.FirstOrDefault().Order != null)
            {
                <span class="order-name">Model.First().Order.Name</span>
            }
            else
            {
                <span class="order-error">Error Message</span>
            }
        }
    

    【讨论】:

    • 如果 FirstOrDefault() 返回 null,这不会抛出异常吗?
    • @DawoodAwan 是的,它会的。刚刚更新了答案,我猜那是一个错字
    猜你喜欢
    • 2015-09-04
    • 2015-02-19
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 2017-05-27
    相关资源
    最近更新 更多