4

Я использую web API 2 + AngularJS для возврата моих данных в угловые контроллеры, но я не знаю, почему я продолжаю получать этот символ ↵ в результате моего json.Удалите ↵ из JSON в web api + AngularJS

У моего контроллера ASP этот метод.

public IHttpActionResult GetAditionalFieldCOnfiguration() 
    { 
     var ListAdditionalFields = new List<rgAdditionalField>() 
     { 
      new rgAdditionalField(){ Type="text", Label="Nombre", Model="first", Val="Carlo" }, 
      new rgAdditionalField(){ Type="text", Label="Apellido", Model="last", Val="Carlos prueba"}, 
      new rgAdditionalField(){ Type="text", Label="Direc", Model="direccion", Val="los alpes"}, 
     }; 

     return Ok(ListAdditionalFields); 
    } 

и я получил это в моем угловом контроллер (я попытался с $ HTTP, $ ресурсо- и Restangular и получил тот же результат):

http://i.imgur.com/LBAn3y3.jpg

Я пробовал различные конфигурации в моем WebApiConfig но ничего не работает, конфигурация:

public static JsonSerializerSettings GetSettingListFormat(rgJsonSettingType type) 
    { 

     switch (type) 
     { 
      case rgJsonSettingType.List: 
       return new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.None, ReferenceLoopHandling = ReferenceLoopHandling.Ignore };      
      case rgJsonSettingType.Single: 
       return new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects, ReferenceLoopHandling = ReferenceLoopHandling.Ignore };      
      case rgJsonSettingType.SingleCamelCase: 
       return new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects, ContractResolver = new CamelCasePropertyNamesContractResolver() }; 
      case rgJsonSettingType.ListCamelCase: 
       return new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.None, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, ContractResolver = new CamelCasePropertyNamesContractResolver() }; 

     } 

     return new JsonSerializerSettings(); 
    } 

Я попытался с HttpResponseMessage и возвращает:

return Request.CreateResponse(HttpStatusCode.OK, ListAdditionalFields, JsonConfiguration.....) 

и ничего больше.

Вы можете мне помочь?

+0

Разве это не ваш инструмент отладки или что-то еще, что указывает на то, что есть возврат каретки? –

+0

Но почему мой код работает в mvc-контроллере, но web-api controller dont, я получил другой результат с той же конфигурацией json. Спасибо. –

ответ

0

Я не знаю, что стоит за вашим контроллером от AngularJS, но я бы удалил этот символ ввода на этом пути.

Создать какую-либо функцию в вашем angularjs контроллер с регулярным выражением, чтобы проверить, если ваша строка содержит ↵ как:

$scope.hasEnter = function(str) { 
     var enter= /\n/gi; 
     if (enter.test(str)) { 
      return true; 
     } else 
      return false; 
    }; 

И если это так, то просто заменить его с характером, что вам нужно.

Надеюсь, эта идея будет полезна для вас.

+0

Спасибо, arman, но я думаю, что проблема в конфигурации веб-api, потому что я пытаюсь использовать тот же код с контроллером mvc и отлично работает. –

+0

Причина может заключаться в том, в каком порядке выполняется ваш код. У меня есть структура приложения DDD, где выполняется мой код в контроллере AngularJS, а затем код в службе RESTful, вызываемый в контроллере. У меня также были проблемы с вводом символа в одном случае, и я освоил его на этом пути. – arman1991

Смежные вопросы