【发布时间】:2017-12-14 19:26:18
【问题描述】:
当表单标签内发生异常时,为什么 .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] 时,异常“索引超出数组范围”显示带有test[0] 的行。调试器还显示不正确的行。似乎当表单标签内发生异常时,表单上方的语句被错误地标识为错误的位置。我尝试使用 Html 助手BeginForm() 并得到了类似的行为。
使用 Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.7.2117.0。 Visual Studio 社区 2017。
【问题讨论】:
-
test[0]有两行。你指的是哪一个? -
@test[0] 错误地显示为错误。抱歉,我的问题不清楚。
-
这是
cshtml文件被编译为c#类文件的不幸副作用,该文件的结构/布局与.cshtml文件略有不同
标签: c# asp.net-mvc razor asp.net-mvc-5