【问题标题】:How can I access web.config settings from reactjs.net?如何从 reactjs.net 访问 web.config 设置?
【发布时间】:2017-01-20 19:47:50
【问题描述】:

我正在尝试从一些 reactjs.net 组件访问一些 Web 配置设置。我在加载应用程序时需要这些,但是 reactjs.net 上的文档还有很多不足之处。有谁知道这可能是如何实现的?是的,我可以让它通过 xmlhttprequest 回调到服务器,但我宁愿能够通过应用程序将它们传递进去。有没有办法让它们出现在视图中并将它们作为参数传递?

提前致谢!

【问题讨论】:

    标签: asp.net reactjs.net


    【解决方案1】:

    我能够通过跳过这些箍来实现这一目标;对于本例,我将获取 web.config “环境”应用键值:

    1. 在您的 react View 的 .cshtml 文件中,将其放入 <head>:

    <script>
          var REACT_APP_RUNTIME_ENVIRONMENT = window.REACT_APP_RUNTIME_ENVIRONMENT = '@System.Web.Configuration.WebConfigurationManager.AppSettings["environment"]';
          if (REACT_APP_RUNTIME_ENVIRONMENT.indexOf('Configuration') != -1){
            REACT_APP_RUNTIME_ENVIRONMENT = window.REACT_APP_RUNTIME_ENVIRONMENT = 'dev';    // Backup value in case the above fails
          }
    </script>

    在上面的示例中,我添加了一个条件作为后备,因此您可以使用平面 index.html 页面而不是 ASP.NET MVC 项目并在那里修改运行时环境变量。

    1. 在您的 react 项目中,您现在可以访问 window.REACT_APP_RUNTIME_ENVIRONMENT,它将从 web.config 中提取值“环境”:

    <appSettings> <add key="environment" value="test" /> </appSettings>

    请务必注意,我只在 ASP.NET MVC 项目中对此进行了测试。

    【讨论】:

      【解决方案2】:

      您似乎回答了自己的问题。

      没有什么能阻止您在应用程序加载时发出请求、检索设置、将它们存储在客户端并让您的组件简单地使用它们。

      这没有什么问题,它使一切变得简单明了。

      【讨论】:

      • 不是真的。如果我需要为服务器设置诸如 API 密钥或地址之类的东西怎么办?如果该密钥在 web.config 中,我无法调用服务器来获取它,因为我需要 API 密钥或地址才能实际调用服务器。
      • 例如,如果您需要 URL,那么您显然将其存储在客户端。服务器端的所有其他内容。这在很大程度上取决于您需要什么。您需要在问题中提供更多详细信息,以明确您需要什么。
      • 我确实在之前的评论中提供了非常清楚的详细信息。我为其构建此应用程序的客户端希望能够从 web.config 文件中传递某些变量。他们不想在两个地方更新它们。应该有一个配置来统治它们。
      猜你喜欢
      • 2012-06-04
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      相关资源
      最近更新 更多