【发布时间】:2021-02-14 14:55:36
【问题描述】:
可能重复,但我一直无法找到任何关于此的内容。
我有一个 asp.net 核心 MVC 项目,它使用 Razor 使用普通视图。
我有一些 ViewModel 对象具有可为空的引用类型,并且我正在使用 C# 8 的空安全特性来适当地标记它们(例如 string? Name)
我的问题是,当我在 cshtml 文件中使用这些变量作为强类型模型时,不会应用空安全性,因为我没有为文件启用它。
如果是.cs 文件,我会在顶部粘贴#nullable enable,但是对于剃须刀页面我可以做什么?
更新澄清:如果可能,我希望在整个 razor 文件中的所有 @code 块上都显示空安全警告。 Tân's answer 展示了如何为特定块启用它,但我喜欢这样的东西
<span>@Model.Name.ToUpper()</span>
具体来说,我想在 Name.ToUpper() 上发出警告,因为 Name 可以为空并且我没有使用 ?调用 ToUpper 时的运算符
【问题讨论】:
-
为什么要把它放在你的视野中? view 可以处理 null 值,如果有 null 值会报错吗?
-
我希望编译器在我不安全地使用一些可空变量时给我警告。例如,如果我在我看来这样做:
@User.Name.ToLower()如果 Name 为空,那将崩溃,因为我应该先做@User.Name?.ToLower()或空检查它。 #nullable 会在那里给出额外的警告,如果可能的话,我希望它们出现在视图中
标签: asp.net-core razor razor-pages nullable-reference-types