gpt4 book ai didi

c# - 表格中的 Razor 异常错误行号

转载 作者:太空狗 更新时间:2023-10-29 23:28:45 26 4
gpt4 key购买 nike

当表单标签内发生异常时,为什么 .NET 会识别不正确的行号?这是 Razor .cshtml 文件中的一个简单测试用例:

@{
string[] test = new string[2];
test[0] = "stuff";
}
@test[0] <br />

<form action="~music/addToCart" method="post">
<input type="text" name="test" value="@test[2]" />
<input type="submit" value="Submit" />
</form>

当实际异常为 test[2] 时,异常“Index was outside the bounds of the array”显示带有 test[0] 的行。调试器还显示不正确的行。似乎当表单标签内发生异常时,表单上方的语句被错误地识别为错误位置。我尝试使用 Html 帮助器 BeginForm() 并得到了类似的行为。

使用 Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.7.2117.0。 Visual Studio 社区 2017。

最佳答案

我能够重现这个。我有一个理论:

考虑原始代码(带行号):

1  - @{
2 - ViewBag.Title = "Home Page";
3 - }
4 -
5 - @{
6 - string[] test = new string[2];
7 - test[0] = "stuff";
8 - }
9 - @test[0] <br />
10 -
11 - <form action="~music/addToCart" method="post">
12 - <input type="text" name="test" value="@test[2]" />
13 - <input type="submit" value="Submit" />
14 - </form>

调试器报告第 9 行有错误,但我认为那是 razor 的行号。如果我们取出任何纯文本(非 Razor ):

1  - @{
2 - ViewBag.Title = "Home Page";
3 - }

4 - @{
5 - string[] test = new string[2];
6 - test[0] = "stuff";
7 - }
8 - @test[0] <br />

9 - <input type="text" name="test" value="@test[2]" />

我们看到错误发生在 Razor 上下文中的第 9 行。

我认为调试器接收带有 Razor 行号的错误信息,并将其与文件布局行号进行比较。

绝对是一个错误。如果有人还没有报告,您应该报告。

关于c# - 表格中的 Razor 异常错误行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47820739/

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