Доступ к константе из кода в UserControl ASCX

У меня есть следующий UserControl ASCX:

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="TestUC.ascx.vb" Inherits="Common.DataQuery.TestUC" %>

<script>
    function fcTest() {
        alert('<%=lblTest.ClientID%>');
    }
</script>

<asp:Label runat="server" ID="lblTest" Text="test" />
Testing constant: <%=MAXT%>
End of test

И ASCX.VB:

Namespace DataQuery

    Public Class TestUC
        Inherits System.Web.UI.UserControl

        Public Const MAXT = 10


        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            lblTest.Text = " dd"
        End Sub

    End Class
End Namespace

В настоящее время возникает ошибка в операторе <%=MAXT%>, говоря, что он не определен. Почему?


person igorjrr    schedule 03.02.2015    source источник


Ответы (1)


Это из-за пространства имен. Удалите начальное пространство имен и конечное пространство имен и попробуйте. Это сработает. Если вам все еще нужно указать пространство имен, обратитесь к этому сообщению, как указать его - Как указать пространство имен для ASP.net UserControl?

person Srikanth495    schedule 03.02.2015
comment
Я следил за этим постом, он работает, но не может получить доступ к константе. - person igorjrr; 03.02.2015
comment
Я полагаю, это потому, что ваш .ascx говорит Inherits=Common.DataQuery.TestUC, а ваш код программной части говорит Namespace DataQuery. они оба должны быть последовательными. иначе код, возможно, даже не скомпилируется. - person Srikanth495; 03.02.2015
comment
Я создал новый веб-элемент управления (с настройками по умолчанию, без явного пространства имен и т. д.). Добавил константу и попытался использовать ее на ASCX. Не идти. - person igorjrr; 04.02.2015