Невозможно получить переменные из отдельного класса на странице .aspx с помощью @Import Namespace=

У меня есть веб-приложение ASP.net, использующее С# в качестве серверной части. У меня есть класс уникальных переменных, к которым я хочу получить доступ на моей странице .aspx.

Я видел отличный пример того, как это сделать на сайте Microsoft: https://forums.asp.net/t/2127062.aspx?How+to+access+the+class+declared+Public+Variable+to +ASPX+Страница+

Вот мой частичный код для страницы Action.aspx:

<%@ Page Language = "C#" AutoEventWireup = "true" CodeBehind = "Action.aspx.cs" Inherits = "Admin_Test Action" %>

<% @Import Namespace = "TestClass" %>

<!DOCTYPE html>

<html xmlns = "https://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en">

<head>

и файл TestClass.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Admin_Test
{
    public class TestClass
    {
        public string ItemType = "TEST VALUE";
    }
}

На странице .aspx я импортирую класс через имя класса. Однако, когда я запускаю код, я получаю сообщение «Тип или имя пространства имен« TestClass »не удалось найти (вам не хватает директивы использования или ссылки на сборку?)

Файл TestClass.cs находится в той же папке, что и файлы Action.aspx/Action.aspx.cs. Он должен его видеть, но почему-то не видит.

Любая помощь будет оценена по достоинству.

Эрик

Приложение - Неверный код для ответа на Orvar...

<%@ Page Language = "C#" AutoEventWireup = "true" CodeBehind = "Action.aspx.cs" Inherits = "Admin_Test.Visual.Content.Action" %>

<% @Import Namespace = "Admin_Test" %>

<!DOCTYPE html>

<html xmlns = "https://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en">

<head>

    <%-- <meta http-equiv = "X-UA-Compatible" content = "IE=7, chrome=1"/>--%>
    <meta http-equiv = "x-ua-compatible" content = "IE=edge" />
    <meta http-equiv = "content-type" content = "application/xhtml+xml; charset=utf-8" />
    <meta http-equiv = "Expires" content = "0" />
    <meta http-equiv = "Cache-Control" content = "no-cache" />
    <meta http-equiv = "Pragma" content = "no-cache" />
    <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" />

    <script type = "text/javascript" src = "../js/jquery-1.4.2.min.js"></script>
    <script type = "text/javascript" src = "../js/jquery.validate.js"></script>
    <script type = "text/javascript" src = "../js/ui/ui.core.js"></script>
    <script type = "text/javascript" src = "../js/ui/ui.datepicker.js"></script>
    <link rel = "stylesheet" type = "text/css" href = "itemtypes/CommonCSS/valueadded.css" />
    <link type = "text/css" href = "../js/ui/themes/base/ui.all.css" rel = "stylesheet" />

    <title></title>

    <script type = "text/javascript">

        var bValid = false;

        var ItemType = UniqueVar.itemtype;

Имя файла класса — UniqueVar. Имя его класса — UniqueVar. Его пространство имен — Admin_Test.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
175
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вам нужно добавить пространство имен вместо имени класса в импорт, как показано ниже:

<% @Import Namespace = "Admin_Test" %>

Возможно, вместо этого можно получить значение, подобное следующему. Поместив значение в файл кода программной части страницы:

public partial class _Default : System.Web.UI.Page
{
    protected string ItemType;
    protected void Page_Load(object sender, EventArgs e)
    {
        ItemType = "TEST VALUE";
    }
}

<script type = "text/javascript">
     ////Getting variable from asp.net code behind  
      alert("<%=ItemType%>");
</script>

Спасибо. Я провел быстрый тест, и он, похоже, сработал. Я могу подтвердить в понедельник, когда я вернусь на работу.

pmcs 26.12.2020 15:08

Orvar, Не получилось. Я разместил ошибочный код .aspx в исходном сообщении. В Visual Studio, когда я набираю UniqueVar. intellisense видит все в этом классе, включая тип элемента. Однако, когда я запускаю свой код, я получаю сообщение об ошибке «UniqueVar» не определено. Я не уверен, что понимаю, почему это происходит, поскольку В.С. видит класс. Есть идеи?

pmcs 29.12.2020 15:20

Хммм, можешь опубликовать фактическое сообщение об ошибке? Спасибо.

IceCode 29.12.2020 16:09

Что, если вы создадите свойство get, возможно, это сработает... например public string ItemType{ get; set; }

IceCode 29.12.2020 16:12

Та же проблема с использованием геттеров и сеттеров. Фактическое сообщение об ошибке: 'UniqueVar' is undefined, строка 30, то есть строка: var ItemType = UniqueVar.itemtype;

pmcs 29.12.2020 16:40

Я пытаюсь получить значения со страницы aspx.cs на странице .aspx. Я делаю это, объявляя общедоступные переменные в разделе Class на странице aspx.cs. Это прекрасно работает, так как доступ к этим переменным можно получить со страницы .aspx. Проблема в том, что когда происходит изменение страницы, код снова выполняет итерацию по классу и повторно инициализирует общедоступные переменные. Нет строки запроса для обновления этих общедоступных переменных, поэтому их значение теряется. Я думал, что если я создам отдельный класс с переменными на отдельной странице .cs, переменные не будут стираться. Как получить доступ к этим переменным на странице .aspx?

pmcs 29.12.2020 18:56

Извините, приятель, не знаю, в чем проблема :/ Вы смотрели на SessionState? Или, возможно, сохранить значение в базе данных?

IceCode 29.12.2020 19:50

Я мог бы сохранить значения в состоянии сеанса, но как мне получить их на странице .aspx?

pmcs 29.12.2020 20:47

Я обновил свой ответ. Вы можете добавить переменную в файл кода программной части страниц и получить к ней доступ в html с помощью кода, который я добавил. Пожалуйста, попробуйте и дайте мне знать, как это происходит.

IceCode 29.12.2020 21:01

Спасибо iceCode, «добавить переменную в файл кода программной части страниц и получить к ней доступ в html» — это именно то, что я сделал.

pmcs 23.11.2022 20:31

IceCode, Как мне отметить ответ как полезный? Я могу проголосовать, и я принял ваш ответ (зеленая галочка), но не вижу других вариантов, которые можно было бы отметить как полезные.

pmcs 25.11.2022 14:15

Другие вопросы по теме