gpt4 book ai didi

asp.net - else 和 { 之间的注释

转载 作者:行者123 更新时间:2023-12-04 02:06:00 25 4
gpt4 key购买 nike

我刚开始使用 Razor 而不是 WebForms-ViewEngine。现在在我的 Razor-View 中,我有这样的东西:

@{
int i = 42;
string text;
if (i == 42)
{
text = "i is 42!";
}
else //i is not 42 //<- Error here
{
text = "i is something else";
}
}

我收到一条警告,并在运行时在 else 行出现异常:

Expected a "{" but found a "/". Block statements must be enclosed in "{" and "}". You cannot use single-statement control-flow statements in CSHTML pages.



显然,编译器不喜欢 else 和 { 之间的注释。我还尝试用 @* 和/* 进行评论,它们给出了类似的错误消息。

反正有没有像我想要的那样在 Razor 中发表评论?


免责声明:

是的,我知道我可以简单地修复它:
@{
int i = 42;
string text;
if (i == 42)
{
text = "i is 42!";
}
else
{ //i is not 42
text = "i is something else";
}
}

但是,它不符合我们的编码指南,并且在同一行上添加注释使我的意图更加明确。

最佳答案

这就是 Razor 解析器的构建方式。如果您不喜欢它的方式,您可以随时在 MS connect 上提交错误/功能请求,并希望人们投票支持它,并且它将在解析器的 future 版本中修复/实现。我个人不会因为我不在乎(请参阅下面的原因)。

话虽如此,何必在意呢?我的意思是你不应该在 Razor 页面中编写代码。 Razor 页面旨在用作 View 。在 ASP.NET MVC 中, View 用于显示从 Controller 操作传递给它的 View 模型中的一些信息。标记主要,与 HTML 帮助程序混合并显示来自 View 模型的信息。但是 C# 代码是不行的。因此,您所说的代码以及您在问题中显示的内容与 Razor View 完全无关。

关于asp.net - else 和 { 之间的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8740243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com