HttpResponseMessage.Content находится в массиве - PullRequest
0 голосов
/ 15 ноября 2018

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

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);

Я связываю строку возврата и возвращаюэто к призванию угловой

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"

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

Любая помощь очень ценится !!

1 Ответ

0 голосов
/ 16 ноября 2018

Так что, несмотря на то, что за него проголосовали 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;

    }
}

}

Теперь я получаю пригодную для использования строку в своем угловом.

...