4

웹 API 2+ AngularJS를 사용하여 데이터를 각도 컨트롤러로 반환하지만 내 json 결과에서이 문자가 계속 나타나는 이유를 모르겠습니다.web api + AngularJS의 JSON에서 ↵ 제거

내 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 함께 노력하고 같은 결과를 얻었다) : 내 WebApiConfig에 다른 구성을 시도

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

을하지만, 아무것도 구성, 작동하지 않습니다 :

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 컨트롤러에서 작동하지만 웹 API 컨트롤러가 작동하지 않는 이유는 동일한 json 구성에서 다른 결과를 얻었 기 때문입니다. 감사합니다. –

답변

0

저는 AngularJS에서 컨트롤러 뒤에 무엇이 있는지 모르지만이 방법으로 심볼을 제거합니다.

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

을 그리고 이것이 사실이라면, 당신이 필요로하는 문자로 대체 :

은 문자열이 포함 된 경우와 같은 ↵ 확인하기 위해 정규 표현식을 사용하여 AngularJS와 컨트롤러의 일부 기능을 만듭니다.

희망이 아이디어는 당신을 위해 도움이 될 것입니다.

+0

고맙습니다 arman,하지만 난 MVC 컨트롤러와 동일한 코드를 시도하고 잘 작동하기 때문에 문제가 웹 API 구성에 있다고 생각합니다. –

+0

그 이유는 코드를 실행하는 순서 때문일 수 있습니다. AngularJS Controller의 코드가 먼저 실행되고 RESTful 서비스의 코드가 컨트롤러에서 호출되는 DDD 앱 구조가 있습니다. 한 가지 경우에 입력 기호에 문제가있어서이 방법으로 마스터했습니다. – arman1991