HttpResponseMessage.Content находится в массиве

Угловой вызов контроллера

var objData = {data: JSON.stringify(JSONObject)}
var mapFile = $scope.service.common.WriteDynamicMapFile.save({}, 
objData).$promise;
mapFile.then(function (response) {**Do Stuff**});

Мой контроллер C#

  public class WriteDynamicFileController : ApiController
{
    [System.Web.Http.AcceptVerbs("GET", "POST")]
    [System.Web.Http.HttpPost]
    public HttpResponseMessage POST([FromBody] SimpleRequest data)
    {
        String DynamicFileName = "";
        HttpResponseMessage response = new HttpResponseMessage();
        using (HostingEnvironment.Impersonate())
        {

            try
            {                  


                client.Headers.Add("X-Current-User", base.User.GetUsername(true).ToString());
                client.Headers[HttpRequestHeader.ContentType] = "application/json";
                client.UseDefaultCredentials = true;


                DynamicFileName = client.UploadString(theURI, data);

                response = new HttpResponseMessage(HttpStatusCode.OK);
                response.Content = new StringContent(DynamicFileName);






            }
            catch (Exception ex)
            {                    
                response.ReasonPhrase = ex.InnerException.ToString();
                return response
            }



            return response;

        }
    }

}

Я получаю результат от WebAPI, который выглядит как

dynamic\431d4460-e95d-4d89-a3d8-d452609632d5.map

который возвращается в сообщении

DynamicMapFileName = client.UploadString(theURI, jSonObject);

Я связываю строку возврата и возвращаю ее вызывающему angular

response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent(DynamicMapFileName);
return response

То, что я возвращаю в Angular, выглядит так

0: "d"
1: "y"
2: "n"
3: "a"
4: "m"
5: "i"
6: "c"
7: "\"
8: "4"
9: "3"
10: "1"
11: "d"
12: "4"
13: "4"
14: "6"
15: "0"
16: "-"
17: "e"
18: "9"
19: "5"
20: "d"
21: "-"
22: "4"
23: "d"
24: "8"
25: "9"
26: "-"
27: "a"
28: "3"
29: "d"
30: "8"
31: "-"
32: "d"
33: "4"
34: "5"
35: "2"
36: "6"
37: "0"
38: "9"
39: "6"
40: "3"
41: "2"
42: "d"
43: "5"
44: "."
45: "m"
46: "a"
47: "p"

Как я могу просто вернуть строковое значение в строковом формате, который я могу использовать?

Любая помощь приветствуется!

Было бы здорово, если бы вы могли предоставить минимальный воспроизводимый пример для стороны Angular и стороны C#.

mjwills 15.11.2018 21:25

Я обновил вопрос

Funn_Bobby 15.11.2018 22:05

@Funn_Bobby не могли бы вы опубликовать HTTP-запрос и ответ из приложения angular? Мне кажется, что ответ правильный.

Nick Polyderopoulos 15.11.2018 23:51

@NickPolideropoulos Спасибо за ответ ... вы правы, данные верны, только не в удобном для использования формате ... Я ответил на свой вопрос ниже.

Funn_Bobby 15.11.2018 23:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
4
1 047
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Так что, несмотря на то, что он получил 2 голоса против, я думаю, что это будет полезно для некоторых ...

В итоге я ушел от HttpResponseMessage. Я действительно создал то, что назвал "SimpleResponse"

  public class SimpleResponse {
    public string data {
        get;
        set;
    }

}

Затем я заменил HttpResponseMessage на возвращаемый тип SimpleResponse.

 public class WriteDynamicFileController : ApiController
{
[System.Web.Http.AcceptVerbs("GET", "POST")]
[System.Web.Http.HttpPost]
public SimpleResponse POST([FromBody] SimpleRequest data)
{
    String DynamicFileName = "";
    HttpResponseMessage response = new HttpResponseMessage();
    using (HostingEnvironment.Impersonate())
    {

        try
        {                  


            client.Headers.Add("X-Current-User", 
            base.User.GetUsername(true).ToString());
            client.Headers[HttpRequestHeader.ContentType] = "application/json";
            client.UseDefaultCredentials = true;


            DynamicFileName = client.UploadString(theURI, data);

            response.data = DynamicFileName;






        }
        catch (Exception ex)
        {                    
            response.ReasonPhrase = ex.InnerException.ToString();
            return response
        }



        return response;

    }
}

}

Теперь у меня в angular.

Другие вопросы по теме