从Angular js 2 Typescript访问web.config appsettings

时间:2016-11-08 14:35:40

标签: c# asp.net-mvc-4 angular

我是角度js 2类型脚本编程的新手。我试图找到一种方法来从typescript访问web.config的应用程序设置键。我不想在我的类型脚本中对数据进行硬编码,因为它们因环境而异。 TIA

1 个答案:

答案 0 :(得分:1)

Typescript被编译为JavaScript,后来在使用web.config文件的应用程序的上下文中执行。因此,您将无法在TypeScript级别读取配置。

您需要做的是在运行时使配置可用。换句话说,无论TypeScript生成什么代码,都需要知道页面运行时可用的某些对象,它将为其提供所需的任何配置。

有几种方法可以做到这一点。

您可以让您的JS代码知道应该始终存在于全局上下文中的对象(例如,当页面运行时,JS中的appConfig)。然后,您可以使用设置填充此对象。例如asz Razor:

var appConfig = [];
appConfig.adminEmail = '@ConfigurationManager.AppSettings["adminEmail"]';

然后,您的TypeScript代码可以在运行时依赖变量appConfig。

Alernatively,您可以为页面设置一种方法,将配置注入TypeScript生成的代码中:

var adminEmail;

function SetAdminEmail(val: string) 
{
    adminEmail = val;
}

function DisplayAdminEmail() 
{
    alert(adminEmail);
}

然后在你的页面中:

<script type="text/javascript">
    SetAdminEmail('@ConfigurationManager.AppSettings["adminEmail"]');
    DisplayAdminEmail();
</script>