#asp.net #.net #vb.net #user-controls #aspx-user-control
Вопрос:
В моем проекте у меня есть следующий пользовательский элемент управления:
Разметка ( 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
И следующая ошибка в строке 11 в SlidingScaleTableReadonly.ascx
:
BC30451 «Масштабирование» не объявлено. Он может быть недоступен из-за его уровня защиты.
Я бы назвал компилятор неправильным в этом случае; scaleEntries
определен и общедоступен. Что же тогда не так?
Комментарии:
1. Даже если он объявлен, основываясь на коде, мы видим, что значение по-прежнему равно НУЛЮ.
2. Выйдите из vs, затем перезагрузите компьютер. Теперь сделайте повторную сборку всего проекта-это должно устранить эти ошибки. Часто иногда они ВСЕ равно будут отображаться, но если вы создадите (или запустите) проект, они исчезнут. Я не могу сказать, когда/почему это происходит, но VS ЧАСТО будет пытаться разрешить эти выражения на стороне сервера встраивания в HTML-разметку.
3. @JoelCoehoorn Это было бы проблемой во время выполнения (и она решается во время выполнения). Такие ошибки не отображаются при редактировании.
4. На самом деле, они часто так делают! — вы видите ошибки компиляции в списке ошибок. Как указано выше, при перестроении все ошибки часто устраняются. Но я все еще думаю, что эти выражения на стороне сервера неверны.
Ответ №1:
Выйдите из vs, затем перезагрузите компьютер. Теперь сделайте повторную сборку всего проекта-это должно устранить эти ошибки. Часто иногда они ВСЕ равно будут отображаться, но если вы создадите (или запустите) проект, они исчезнут. Я не могу сказать, когда/почему это происходит, но VS ЧАСТО будет бороться за разрешение этих встроенных выражений на стороне сервера в HTML-разметке
В большинстве случаев повторная сборка все исправит, но я обнаружил, что иногда вам приходится выходить из VS, повторно запускать. Сделайте все заново, и ошибка исчезнет.
Комментарии:
1. Ах, да — прости меня! — попробуйте проект перестройки — посмотрите, исчезнет ли ошибка. как уже отмечалось, мне часто приходилось выходить против повторного запуска. Откройте проект, а затем выполните перестройку всего. Посмотрите, сработает ли это (я предполагаю, что когда-то так и было???)
2. Да, это и есть решение. Это досадная ошибка, я надеюсь, что VS в конце концов исправит ее. Большое спасибо!
3. Я не знаю, когда/почему. Но иногда ДАЖЕ повторная сборка все не исправляет. Вы должны выйти из VS, а затем повторно войти, а ЗАТЕМ заново собрать все. Но, как правило, ПРОСТО повторная сборка все исправит.