Данные API находятся в контроллере, но не отображаются на Mvc - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь отобразить свою страницу сведений о ресторане через вызовы API. На данный момент я просто ориентируюсь на название ресторана

Ответ JSON выглядит примерно так

{
    "address":null,
    "restaurant":
    {
        "apiKey":"364155d9f18155ceda325d7782b35bdb9696f108a9a450c0",
        "logoUrl":"https://static.eatstreet.com/assets/images/restaurant_logos/107-state-71386_1578050374619.png",
        "name":"107 State"
    }
}

Начиная с apihelper, я могу видеть весь ответ, и данные там.

public static async Task<string> GetDetails(string ApiKey) //pass through id as well
{
    RestClient client = new RestClient("https://eatstreet.com/publicapi/v1/");

    RestRequest request = new RestRequest($"restaurant/{ApiKey}", Method.GET);
    request.AddHeader("X-Access-Token", EnvironmentVariables.apiKey);

    var response = await client.ExecuteTaskAsync(request);

    Uri fullUrl = response.ResponseUri;
    // Console.WriteLine(string.Format("/n/n" + response.ResponseUri.ToString() + "\n\n details url")); //print url to console for testing
    // Console.WriteLine("\n\n\n" + ApiKey + "\n\n\n");
    // Console.WriteLine("\n\n\n" + response.Content+ "\n\n\n");
    return response.Content;
}

Оттуда в модели ресторана я десериализую и превращаю его в объект и возвращаю deliver_me_deliveries.Models.Restaurant

public static Restaurant GetDetail(string ApiKey)
{
    var apiCallTask = ApiHelper.GetDetails(ApiKey);
    var result = apiCallTask.Result;

    JObject jsonResponse = JsonConvert.DeserializeObject<JObject>(result);

    Restaurant restaurant = JsonConvert.DeserializeObject<Restaurant>(jsonResponse.ToString());

    Console.WriteLine("\n\n" + restaurant + "\n\n");
    // Console.WriteLine("\n\n" + result + "\n\n");
    return restaurant;
}

Оттуда в контроллере я возвращаюсь к просмотру deliver_me_deliveries.Models.Restaurant

// returns object deliver_me_deliveries.Models.Restaurant
[HttpGet("{ApiKey}")]
public IActionResult Details(string ApiKey)
{
    var restaurant = Restaurant.GetDetail(ApiKey);

    Console.WriteLine("\n\n" + restaurant + "\n\n");
    //returns deliver_me_deliveries.Models.Restaurant

    return View(restaurant);
}

Но при I go в подробностях данные не отображаются:

<h1>DETAILS PAGE</h1>

<h1></h1> //Model.Name

</div>

Спасибо

...