为什么我的UserControl的标记告诉我"variable is not defined",尽管变量在代码中被定义和公开?



我在我的项目中有以下用户控件:

标记(SlidingScaleTableReadonly.ascx):

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="SlidingScaleTableReadonly.ascx.vb" Inherits="Client.Project.SlidingScaleTableReadonly" %>
<table class="table">
<thead>
<tr>
<th scope="col">Résultat glycémique</th>
<th scope="col">Unité à administrer</th>
</tr>
</thead>
<tbody>
<% For Each scaleEntry In ScaleEntries %>
<tr>
<td><%= scaleEntry.LowerValue %> - <%= scaleEntry.HigherValue %></td>
<td><%= scaleEntry.UnitToDeliver %></td>
</tr>
<% Next %>
</tbody>
</table>

代码(SlidingScaleTableReadonly.ascx.vb):

Public Class SlidingScaleTableReadonly
Inherits UserControl
Public ScaleEntries As List(Of ScaleEntry)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
End Class

SlidingScaleTableReadonly.ascx的第11行出现以下错误:

BC30451 'scaleEntries'未声明。由于其保护级别,可能无法访问。

我认为编译器在这一点上是错误的;scaleEntries已定义并公开。那怎么了?

退出vs,然后重新加载。现在为这个项目重新构建一下——这应该会使这些错误消失。有时候它们仍然会出现,但是如果你构建(或运行)了项目,它们就会消失。我不能说当/为什么发生这种情况,但是VS经常将难以解决服务器端嵌入表达式的HTML标记

在大多数情况下,重新构建会解决这个问题,但我发现有时你必须退出VS,重新启动。重新编译一次,错误就会消失。

最新更新