5

ASP.NET MVC4 Razor プロジェクトの JavaScript ファイルで、以下の「serverPath」などの web.config 設定を使用することは可能ですか?

<appSettings>
  <add key="serverPath" value="http://myserver" />
</appSettings>

デバッグまたはリリース モードに応じて、次の jQuery ajax 呼び出しの URL を変更したいと思います。

  var request = $.ajax({
    url: 'http://myserver/api/cases',
    type: 'GET',
    cache: false,
    dataType: 'json'
  });

View のように web.config から値を読み取り、それを .js ファイルに置き換えることは可能ですか?

4

5 に答える 5

5

An alternative is to have a js file that contains your configuration in the way that the web.config does for a .net web site:

configuration.js:

var configuration = {
    apiurl: 'http://myserver/api/',
    someOtherSetting: 'my-value'
};

Well, you could either write this configuration into your page as javascript or link to the script or merge and minify into a common file. It would become part of your deployment process.

Then use it as you would any js object:

var request = $.ajax({
    url: configuration.apiurl,
    type: 'GET',
    cache: false,
    dataType: 'json'
});

Or some variant thereof.

于 2013-03-20T16:25:27.837 に答える
1

確かに、これをあなたの見解で使用してください:

@ConfigurationManager.AppSettings["serverPath"]

外部のjsファイルに渡すには、関数にパラメーターを設定し、ビューから呼び出す必要があります。

<script type="text/javascript">
    getData('@ConfigurationManager.AppSettings["serverPath"]');
</script>

jsファイルに次のようなものがある場合:

function getData(path) {
    var request = $.ajax({
        url: path,
        type: 'GET',
        cache: false,
        dataType: 'json'
    });

    return request;
}
于 2013-03-20T16:17:17.017 に答える
1

理想的には、コントローラーで値を読み取ります。

var serverPath = ConfigurationManager.AppSettings.Get("serverPath");

次に、ビューモデルのプロパティにその値を設定します

myViewModel.ServerPath = serverPath;
return View(myViewModel);

ビューでは、それを JS にフィードするだけです。

var request = $.ajax({
    url: '@(Model.ServerPath)',
    type: 'GET',
    cache: false,
    dataType: 'json'
  });
于 2013-03-20T16:18:55.437 に答える
0

これを試して:

var request = $.ajax({
    url: '@(ConfigurationManager.AppSettings["serverPath"])',
    type: 'GET',
    cache: false,
    dataType: 'json'
  });
于 2013-03-20T16:18:11.860 に答える
0

ASP.NET MVC4 Razor では、次のように実行できます。

@{
    var apiBaseUrl = ConfigurationManager.AppSettings.Get("ApiBaseUrl");
}

<script type="text/javascript">
    $(document).ready(function() {

      var request = $.ajax({
          url: '@apiBaseUrl/cases',
          type: 'GET',
          cache: false,
          dataType: 'json'
      });

    });
</script>
于 2013-09-24T15:11:18.710 に答える