ASP.NET 间歇性地获取编译器错误消息
ASP.NET Getting compiler error message intermittently
我有一个仅使用内联 C# 的 aspx 页面,没有代码隐藏。
运行 来自 Visual Studio 它有效,但是将 aspx
文件添加到我本地计算机的 wwwroot
会给出消息
Compiler Error Message: CS1513: } expected
如果我重新安排代码以在代码上方使用方法,则消息改为
CS1519: Invalid token 'try' in class, struct, or interface member declaration
我想这与服务器配置有关,但我真的不知道从哪里开始。
只有在有方法时才会出现此问题,从下面删除 method1
会得到正确的 运行。
这是我能够导致错误的最小完整文件
html
<%@ Page Language="C#" %>
<%
try
{
string message = "Text";
Response.Write(method1(message));
}
catch
{
Response.Write("Err");
}
string method1(string source)
{
return source;
}
%>
如果您直接在 aspx 页面上嵌入代码,该代码仍然必须放在方法中。例如:
<%@ Page Language="C#" %>
<%
void Page_Load(Object sender, EventArgs e)
{
try
{
string message = "Text";
Response.Write(method1(message));
}
catch
{
Response.Write("Err");
}
}
string method1(string source)
{
return source;
}
%>
顺便说一句 - 我们通常不会将 C# 代码直接放在 .aspx 文件中。这就是 code behind 系统的用途。
而且我们通常不会直接写回复。很难控制标记的最终位置。在 Web 窗体中,最好在页面上声明一个控件,然后向该控件(或 show/hide 控件)添加标记。当然,如果我们要谈论把事情做好——那么一开始就不要使用 Web Forms。这是一项死技术。
我搞砸了 Visual Studio 项目,运行 在较早版本的 .NET/C# 上产生了以下错误,看来这可能是我的实际问题有过
Error CS8059 Feature 'local functions' is not available in C# 6. Please use language version 7.0 or greater.
我不确定为什么它认为 method1
是一个本地函数并且很难获得详细信息。
编辑:为了解决我的问题,我将方法放在脚本标签中而不是嵌入代码块中。然后可以从嵌入块和脚本标记中使用这些方法。
<script runat="server">
string method1(string source)
{
return source;
}
<script>
我有一个仅使用内联 C# 的 aspx 页面,没有代码隐藏。
运行 来自 Visual Studio 它有效,但是将 aspx
文件添加到我本地计算机的 wwwroot
会给出消息
Compiler Error Message: CS1513: } expected
如果我重新安排代码以在代码上方使用方法,则消息改为
CS1519: Invalid token 'try' in class, struct, or interface member declaration
我想这与服务器配置有关,但我真的不知道从哪里开始。
只有在有方法时才会出现此问题,从下面删除 method1
会得到正确的 运行。
这是我能够导致错误的最小完整文件
html
<%@ Page Language="C#" %>
<%
try
{
string message = "Text";
Response.Write(method1(message));
}
catch
{
Response.Write("Err");
}
string method1(string source)
{
return source;
}
%>
如果您直接在 aspx 页面上嵌入代码,该代码仍然必须放在方法中。例如:
<%@ Page Language="C#" %>
<%
void Page_Load(Object sender, EventArgs e)
{
try
{
string message = "Text";
Response.Write(method1(message));
}
catch
{
Response.Write("Err");
}
}
string method1(string source)
{
return source;
}
%>
顺便说一句 - 我们通常不会将 C# 代码直接放在 .aspx 文件中。这就是 code behind 系统的用途。
而且我们通常不会直接写回复。很难控制标记的最终位置。在 Web 窗体中,最好在页面上声明一个控件,然后向该控件(或 show/hide 控件)添加标记。当然,如果我们要谈论把事情做好——那么一开始就不要使用 Web Forms。这是一项死技术。
我搞砸了 Visual Studio 项目,运行 在较早版本的 .NET/C# 上产生了以下错误,看来这可能是我的实际问题有过
Error CS8059 Feature 'local functions' is not available in C# 6. Please use language version 7.0 or greater.
我不确定为什么它认为 method1
是一个本地函数并且很难获得详细信息。
编辑:为了解决我的问题,我将方法放在脚本标签中而不是嵌入代码块中。然后可以从嵌入块和脚本标记中使用这些方法。
<script runat="server">
string method1(string source)
{
return source;
}
<script>