Объявить глобальную переменную/переменную для всего сайта в ASP.Net VBHTML

После примерно тысячи лет создания веб-сайтов в ASP Classic я пытаюсь изучить ASP.Net с помощью Razor. Я использую Visual Studio 2012. Google, кажется, не помогает в некоторых из этих основных вещей (но я, вероятно, просто не знаю, какой вопрос задать). Одна из основных вещей, с которой я сейчас борюсь, — это как объявить переменную, которую я могу использовать на своем веб-сайте.

Например:

DIM DefaultColor AS String = "Green"

У меня есть это на странице _AppStart.vbhtml, и я пытаюсь получить к ней доступ, используя

 <p>@DefaultColor</p>

в Default.vbhtml, но я получаю сообщение об ошибке, что DefaultColor не объявлен.

  • Как и где объявить переменную, к которой я могу получить доступ на веб-сайте?
  • Если страница _AppStart.vbhtml является правильной страницей, нужно ли мне что-то добавить к странице default.vbhtml или _template.vbhtml, чтобы загрузить ее?

person Soren    schedule 30.01.2018    source источник
comment
Добро пожаловать в будущее! Используете ли вы asp.net-mvc или razor-pages? Ответ, который вы получите, зависит от используемой вами среды пользовательского интерфейса и может значительно различаться. Обратите внимание, в блоке также есть новый ребенок: AspNetCore, который также использует бритву.   -  person NightOwl888    schedule 30.01.2018
comment
Я использую Razor v2.   -  person Soren    schedule 30.01.2018


Ответы (1)


Прежде всего, я не уверен, доступен ли ASP.NET Core для VB.NET. По крайней мере, я пытался создать новый проект для VB.NET, но ASP.NET Core недоступен. Я расскажу вам, как это можно сделать с помощью шаблона C#.

Вы можете использовать объект TempData для хранения и извлечения данных. Вы можете установить такое значение:

@{
    TempData["Value"] = "Hello World";
}

Теперь вы можете отобразить это значение следующим образом.

@TempData["Value"]

Другой вариант — создать статический класс, который будет содержать переменную, в которой будет храниться значение.

namespace Sample
{
    public class MyStaticClass
    {
        public static string Value = "Hello World!";
    }
}

Теперь вы можете отобразить содержимое значения следующим образом:

@Sample.MyStaticClass.Value

Вы также можете установить значение и использовать его позже.

Sample.MyStaticClsas.Value = "New Value";

Я надеюсь, что это помогает.

person pitaridis    schedule 30.01.2018
comment
Итак, вы добавляете TempData[Value] = Hello World; в файле _AppStart.vbhtml? - person Soren; 31.01.2018
comment
В шаблоне C# ASP.NET Core 2 файл называется _ViewStart.cshtml. Если вы планируете использовать ASP.NET Core, лучше начать работу с C#. - person pitaridis; 31.01.2018