Я думаю, что проще всего было бы скопировать ваши глобальные переменные в Typescript на стороне клиента. Вот как я сделал это для моих последних двух проектов.
Итак, на стороне сервера у вас будет:
// C#
public class Globals()
{
public int GlobalNum {get;} = 0;
public string GlobalString {get;} = "123";
}
А на стороне клиента в Typescript это будет:
// Typescript
export enum Globals{
GlobalNum = 0;
GlobalString = "123";
}
Теперь вы можете забыть о сложности попыток подключить Razor (который отображает на стороне сервера) к вашему Typescript (который выполняется на стороне клиента), при этом оставаясь ясным и очевидным набором глобальных ссылок, на которые можно ссылаться.
Ваш код может стать:
// Typescript
if (lSelectedID == Globals.GlobalString) {
//...
}
Единственное, что вам нужно помнить, это то, что ваши глобальные переменные существуют в двух местах - один раз на стороне сервера и один раз на стороне клиента.
Typescript требует, чтобы вы все равно реплицировали много своих серверных классов на стороне клиента, для правильного получения, например, данных ответа на выборку, поэтому добавление Globals
class / enum не должно быть слишком большим нарушать норму.