为什么我的 UserControl 的标记告诉我 "variable is not defined",尽管在代码中定义了变量和 public?
Why is my UserControl's markup telling me "variable is not defined", despite variable being defined and public in code?
我的项目中有以下用户控件:
标记(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' is not declared. It may be inaccessible due to its protection level.
在这个问题上我认为编译器是错误的; scaleEntries
已定义,public。那怎么了?
退出vs,然后重新加载。现在为项目重新构建所有内容 - 这应该会使这些错误消失。通常有时它们仍然会显示,但如果您构建(或 运行)项目,它们就会消失。我不能说 when/why 会发生这种情况,但是 VS 通常会努力解析 HTML 标记
中那些嵌入的服务器端表达式
在大多数情况下,重新构建全部可以解决此问题,但我发现有时您必须退出 VS,重新启动。全部重新构建,错误消失。
我的项目中有以下用户控件:
标记(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' is not declared. It may be inaccessible due to its protection level.
在这个问题上我认为编译器是错误的; scaleEntries
已定义,public。那怎么了?
退出vs,然后重新加载。现在为项目重新构建所有内容 - 这应该会使这些错误消失。通常有时它们仍然会显示,但如果您构建(或 运行)项目,它们就会消失。我不能说 when/why 会发生这种情况,但是 VS 通常会努力解析 HTML 标记
中那些嵌入的服务器端表达式在大多数情况下,重新构建全部可以解决此问题,但我发现有时您必须退出 VS,重新启动。全部重新构建,错误消失。