【问题标题】:Reading a AppKey value from web.config in clientside js SPA从客户端 js SPA 中的 web.config 读取 App Key 值
【发布时间】:2014-04-29 09:13:28
【问题描述】:

我有 Durandal SPA,它在不同的视图中使用 url.config.js 文件。一堆服务的 url 存储在那里。

代码清晰:

define([], function () { 
    var serviceBaseUrl = 'http://localhost/Service/api/';
    var portalPortalUrl = 'http://localhost/Portal';
});

每当我需要部署我的应用程序或使用不同的 IIS 设置运行它时,我都需要在代码中手动更改此 url。

我想要什么:

将它们存储在Web.config 文件中,以便我可以对调试和发布模式进行不同的配置。

我使用 MVC 5 Razor 视图仅用于渲染包和初始内容,所有客户端逻辑都放在 Durandal 文件夹中。

我只找到了使用ASP.NET ConfigurationManager 的解决方案,如下所示:

 function ReadConfigurationSettings()
 {
     var k = '<%=ConfigurationManager.AppSettings["var1"].ToString() %>'
     alert(k);
 }

或者,对于 Razor:

@System.Configuration.ConfigurationManager.AppSettings["myKey"]

这很酷,但不是我的方式。 也许可以根据Web.config 键自动生成我的urls.config.js 文件? 先感谢您。

如果需要,这是我的项目结构:

- App //Durandal SPA 
- Controllers 
- Views //Only render initial view 
- Web.config

【问题讨论】:

    标签: javascript asp.net-mvc razor web-config durandal


    【解决方案1】:

    你可以使用JavaScriptResult

    将 JavaScript 内容发送到响应。

    代码,控制器动作方法

    public JavaScriptResult Config()
    {
        var script = string.Format(@"var configServiceBaseUrl = {0};", ConfigurationManager.AppSettings["var1"]);
        return JavaScript(script);
    }
    

    在页眉中(我会先加载文件),你可以定义:

    <script type="text/javascript" src='@Url.Action("Config", "Controller")'></script>
    

    现在 configServiceBaseUrl 是全局 JavaScript 变量,您可以在任何地方使用它。

    所以你可以在url.config.js 中使用configServiceBaseUrl 喜欢

    define([], function () { 
        var serviceBaseUrl = configServiceBaseUrl;
    });
    

    【讨论】:

      【解决方案2】:

      添加到satpal,用于SPA应用,例如angular js

      对于 SPA,例如 Angular,您可以在 index.html 中使用以下代码

       <script type="text/javascript" src='/Controller/config'></script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-12
        • 1970-01-01
        • 2021-06-05
        • 2020-09-09
        • 2021-10-03
        • 2012-10-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多