【问题标题】:WebGrid Replace function in string null reference exception字符串空引用异常中的 WebGrid 替换函数
【发布时间】:2014-11-13 11:16:09
【问题描述】:

我一直在努力

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:


Line 54:                        string review = item.Review;
Line 55:                        //review = review.Replace("\r\n", "<br/>");
Line 56:                        return review.Replace("\r\n", "<br/>");
Line 57:                     }),
Line 58:                     grid.Column(format: @<a href="~/DeleteMovie?id=@item.ID">Delete</a>)

........ 行:56

当我尝试使用 Replace 函数进行字符串检查时。我在第 54 行创建并设置了评论实例,它将输出我期望的文本。但是当我尝试进行替换时,我得到了这个错误。为什么?

【问题讨论】:

    标签: string replace nullreferenceexception webmatrix webgrid


    【解决方案1】:

    第 54 行没有创建review 的实例,而只是指向item.Review 的值,该值可能为空,也可能不为空。

    大概在这种情况下item.Review 本身为空,因此review 也为空。

    您可以做的一件事是将第 54 行更改为:

    string review = item.Review ?? "";
    

    这将确保review 永远不会为空。它要么具有item.Review 的内容,要么是一个空字符串(不为空)。

    【讨论】:

    • 成功了!我不太确定那个额外的语法是做什么的,但我稍后会研究它。我在想??就像一个或陈述。谢谢!
    • 语法大致相当于:string review = item.Review == null ? "" : item.Review;,但更短一些。即如果item.Review为null,则存储"",否则存储item.Review的值。
    猜你喜欢
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    相关资源
    最近更新 更多