Ori*_*rds 7 razor asp.net-core razor-pages nullable-reference-types
可能重复,但我找不到任何相关内容。
\n我有一个 asp.net core MVC 项目,它利用 Razor 的普通视图。
\n我有一些具有可为空引用类型的 ViewModel 对象,并且我正在使用 C# 8 空安全功能来适当地标记这些对象(例如string? Name)
我的问题是,当我在cshtml作为强类型模型时,不会应用空安全,因为我尚未为该文件启用它。
如果它是一个.cs文件,我会坚持#nullable enable在顶部,但我能为 Razor 页面做什么?
更新以澄清:如果可能,我希望整个 razor 文件中的所有 @code 块都出现空安全警告。T\xc3\xa2n\的回答显示了如何为特定块启用它,但我希望它能实现这样的功能
\n<span>@Model.Name.ToUpper()</span>\nRun Code Online (Sandbox Code Playgroud)\n具体来说,我想对 Name.ToUpper() 发出警告,因为 Name 可为空并且我没有使用 ? 调用 ToUpper 时的运算符
\n您的问题中没有足够的信息来说明您需要做什么(例如:添加一些包、删除一些包...)
但默认情况下,Razor 语法支持#nullable,您可以在块内使用它@{}。
例子:
@{
#nullable enable
string name1 = User.Identity.Name.ToLower();
#nullable disable
// compiler won't complain anything here...
string name2 = User.Identity.Name.ToLower();
}
Run Code Online (Sandbox Code Playgroud)
测试:
我csproj用来测试的文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3186 次 |
| 最近记录: |