Lar*_*ard 44 c# asp.net-mvc razor c#-6.0
所以自从C#6.0问世以来,我一直在使用null条件运算符.例:
Model?.Person?.Zip
Run Code Online (Sandbox Code Playgroud)
但是,我现在有一种情况,我有一个解决方案,客户在视图中的域模型上运行.虽然我会用斧头追捕开发人员,但我发现在视图中进行一些空检查会更容易.
但是,当我在Razor中使用它时:
@Model?.Person?.Zip
Run Code Online (Sandbox Code Playgroud)
我Model?被看作是动态的,但?打破了动态的东西,休息被渲染为文本.
你是如何解决这个问题的?
Eil*_*lon 18
为了一些额外的完整性(我在Microsoft的ASP.NET团队工作):
正如Dieter B(以及其他一些人)正确指出的那样,@(Model?.Person?.Zip)会有效.
该@(...)语法可以被认为是作为一个"转义语法",允许更大的灵活性,其中的代码将被解析为表达术语.
当构建当前版本的Razor时,只有C#5存在,因此不直接支持新的C#6语法.
ASP.NET团队希望将一些支持C#6的Razor v4(用于ASP.NET 5/MVC 6)支持回Razor v3(用于ASP.NET 4.x/MVC 5).
当您从项目中丢失以下一个或两个以下NuGet软件包时,也会发生这种情况:
| 归档时间: |
|
| 查看次数: |
7346 次 |
| 最近记录: |