gpt4 book ai didi

c# - Razor 正在删除第二个 if 语句中的大括号

转载 作者:行者123 更新时间:2023-11-30 22:17:30 25 4
gpt4 key购买 nike

当我尝试在本地运行我的 C# 应用程序时,我遇到了一个非常奇怪的错误。我是 c# 网络开发的新手,所以我可能会遗漏一些简单的东西。我搜索了一段时间,发现了一些非常相似的问题,但出于同样的原因,我找不到出现此错误的人。

在导致错误的 cshtml 文件的顶部,我有以下代码:

我的代码:

@{
var addr = ViewBag.Address;
if (addr == null)
{
throw new InvalidOperationException("Address is null");
}
string addrString = @addr.Street + " " + @addr.City + ", " + @addr.State + " " + @addr.Postal + " " + @addr.Country;
addrString = addrString.Trim();
int lastSpot = addrString.Length - 1;
if (addrString[lastSpot] == ',')
{
addrString = addrString.Remove(lastSpot);
}
}

当我运行它时,出现此错误。如果我删除第二个 if 语句,错误就会消失错误:

编译器错误消息:CS1513:} 预期

来源错误:

Line 619:        }
Line 620: }
Line 621:}

当我查看由 Razor 生成的文件时,我看到了这一点:注意第二个右大括号已被删除:

Line 55:    if (addrString[lastSpot] == ',')
Line 56: {
Line 57: addrString = addrString.Remove(lastSpot);
Line 58:
Line 59:
Line 60: #line default
Line 61: #line hidden
Line 62: BeginContext("~/Views/Home/ResolveAddress.cshtml", 438, 268, true);

我不知道为什么第二个支架没有被识别,任何建议都会很好。另外,我的 cshtml 文件只有 208 行。

非常感谢!

最佳答案

行内:

string addrString = @addr.Street + " " + @addr.City + ", " + @addr.State + " " + @addr.Postal + " " + @addr.Country;

@ 符号不是必需的,因为您不想在 C# 和标记之间切换。他们很可能会导致问题。

所以解决方法是:

string addrString = addr.Street + " " + addr.City + ", " + addr.State + " " + addr.Postal + " " + addr.Country;

关于c# - Razor 正在删除第二个 if 语句中的大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16700013/

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