0

Я использую Asp.net MVC с Angularjs для этого приложения. Как передать URL-адрес, который находится в ключе в web.config, в ссылку в angularjs .html view?Пропустить url из web.config в angularjs .html view

Web.config:

<add key="SampleTemplate" value="C:\SampleTemplate" /> 

TemplateView.html:

<a ng-href= "WHAT SHOULD I WRITE HERE?"> Edit Template</a> 
+0

Сделать вызов ajax с помощью '$ http', чтобы получить ключ конфигурации с сервера и присвоить значение ответа переменной' $ scope'. –

ответ

0

Вы можете прочитать конфигурационный раздел в стороне сервера код и получить его через $http.get. Это лучшее решение.

Вы должны написать метод в своем MVC ApiController (это может быть MVC Action). Что-то вроде:

[Route("settings/{key}")] 
[HttpGet] 
public HttpResponseMessage GetSetting(string key) 
{ 
    try 
    { 
     return Request.CreateResponse(HttpStatusCode.OK, 
      System.Configuration.ConfigurationManager.AppSettings[key]); 
    } 
    catch (Exception ex) 
    { 
     return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex) 
    } 
} 

И в вашей угловой службы:

app.service('utilsService', utilsService); 

utilsServcie.$inject = ['$http']; 
function utilsServcie($http){ 
    this.readServerProperty = function(key){ 
     $http.get('/api/v1/settings/' + key).then(
      function(response){ 
       return response.data; 
      }, 
      function(error){ 
       alert(error.data.message); 
      } 
     ); 
    } 
} 

И вы можете использовать эту услугу в требуемом месте, как это:

app.controller('MainController', MainController); 

MainController.$inject = ['utilsServcie']; 
function MainController(utilsServcie){ 

    var vm = this; 

    utilsServcie.readServerProperty('SampleTemplate').then(function(path){ 

     vm.path = path; 

    }); 

} 

А на ваш взгляд:

<div ng-controller="MainController as mc"> 
    <a ng-href= "mc.path"> Edit Template</a> 
</div> 

Ну, я написал al l этого из памяти, поэтому возможны небольшие ошибки, но вы можете поймать эту идею.

Это все люди. : D

+0

Можете ли вы привести мне пример? – Programmermid

+0

Вот вы, проверьте обновление. :) – Kindzoku