Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于Web.config appSettings设置API URL_C#_.net_Angularjs_Api - Fatal编程技术网

C# 基于Web.config appSettings设置API URL

C# 基于Web.config appSettings设置API URL,c#,.net,angularjs,api,C#,.net,Angularjs,Api,所以我继承了一个angular应用程序,它将API url定义为一个常量变量,并且可以正常工作。然而,这也有它的缺点,因为当我想要指向部署API、测试API和开发API时,我必须更改变量值 是否有方法访问我的web.config文件以读取appSettings并返回API URL?(我使用XML转换应用了不同的API URL) 我已经实现了一个从web项目访问API控制器并以这种方式返回值的解决方案,但我不确定这是否是正确的方法。您可以将web.config中的值序列化为JSON,并将它们添加到

所以我继承了一个angular应用程序,它将API url定义为一个常量变量,并且可以正常工作。然而,这也有它的缺点,因为当我想要指向部署API、测试API和开发API时,我必须更改变量值

是否有方法访问我的web.config文件以读取appSettings并返回API URL?(我使用XML转换应用了不同的API URL)


我已经实现了一个从web项目访问API控制器并以这种方式返回值的解决方案,但我不确定这是否是正确的方法。

您可以将web.config中的值序列化为JSON,并将它们添加到JavaScript可以读取和解析的
元素中

这是我能想到的最简化的例子。您可能希望更好地封装如何从服务器代码编写此代码以及如何从JavaScript读取此代码(并提供更好的名称)

首先,在web.config中,定义包含要传递给JavaScript的键/值对的部分:

<?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="jsConfigurationValues" 
          type="System.Configuration.NameValueSectionHandler" />
      </configSections>

      <jsConfigurationValues>
        <add key="someValue" value="a" />
        <add key="apiUrl" value="http://theurl" />
      </jsConfigurationValues>

      <!-- the rest of your web.config -->

    </configuration>
现在可以访问:

var apiUrl = mySettings.apiUrl;

不过,这里缺少了一部分,这就是将该值导入到角度中的角度化方法。也许你最好从一个相对URL调用一个API来获取剩余的一组特定于环境的绝对URL,并让浏览器缓存它。感谢Scott的响应,我将尝试使用此解决方案,希望我能解决我的问题。
<script type="application/json" id="mySettings">
    <% =JavascriptConfigurationValues() %>
</script>
var mySettings = JSON.parse(document.getElementById("mySettings").textContent);
var apiUrl = mySettings.apiUrl;