我在运行时查看ASP时遇到错误。NET页面。我没有得到任何构建错误,但我在运行时得到了以下编译器错误:
编译错误
描述:编译服务此请求所需的资源时出错。请查看以下特定错误的详细信息,并适当地修改源代码。
Compiler Error Message: CS1513: } expected
Source Error:
Line 329: #line hidden
Line 330: __output.Write("rnttt</div>rntt");
Line 331: }
Line 332:
Line 333: private System.Web.UI.Control __BuildControl__control7() {
Source File: c:WindowsMicrosoft.NETFrameworkv1.1.4322
Temporary ASP.NET Filesxxxxxxxx450ffa78d46d847d
k1gsz9dj.0.cs Line: 331
我在源代码中找不到任何丢失的},并且此错误发生在临时ASP中生成的代码文件中。NET Files目录。如何将其跟踪到页面或页面上的用户控件中实际格式错误的代码行?
如果错误代码如下所示:
如果变量名称与保留字相同,则可以重命名变量。
一个代码段,例如:
@model MyModel
{
var appname = @Model.Apps.FirstOrDefault(x => x.ID == Model.SelectedApp);
}
删除Model.Apps.FirstOrDefault(x => x.ID == Model.SelectedApp)
之前的"@"
一种代码段或部分的用法,如:
@section{
<!-- hiiii it's not about an error -->
}
删除节中注释中的撇号。
如果不是这些特定情况,您可以尝试通过应用源减少来定位错误的产生位置。删除/剪切/注释掉代码片段,直到你能够可靠地关闭和打开错误。如果不是上述情况之一,打开错误的代码很可能是罪魁祸首。
在标记(aspx或ascx)中查找以下块
<% ... some C# code.... { %>
markup(controls, html etc)
<% } %>
任何打开的括号{
都需要用另一个括号}
闭合。
这些页面或控件由ASP编译一次。当他们第一次被请求时。
aspx or ascx
文件如果项目是"网站"类型,Visual Studio会编译
aspx/ascx
文件,但如果项目为"Web应用程序"类型,则Visual Studio不会"编译"标记(它不会生成与aspx/ascx
标记对应的类)
在我的网站上,问题是由如下代码块引起的:
@{
var currentNode = @linkedList.Find(@CurrentPage);
if (@currentNode.Next != null)
{
var next = @currentNode.Next;
<li>
@next.Name
</li>
}
if (@currentNode.Previous != null)
{
var prev = @currentNode.Previous;
<li>
@prev.Name
</li>
}
}
我不知道为什么这个问题是由嵌套引起的。这可能是编译器中的错误。
我遇到了一个类似的问题,oculd只是在尝试和错误日志后才发现。
我犯的错误是在foreach循环内的变量中添加一个"@",该循环以开头
@foreach
正如错误所示,您缺少一个右大括号"}"
查看msdn编译器错误文档:
- http://msdn.microsoft.com/en-us/library/83ht1k63(v=vs.80).aspx
如MSDN上的示例:
// the below will cause CS1513 since namespace is missing '}'
namespace y
{
class x
{
public static void Main()
{
}
}
尝试在visualstudio中编译它。我认为它还将显示代码中不完整大括号的确切行。
编译错误cs1513