Ваш класс валюты неверен. Он не включает все свойства для привязки. Глядя на результат JSON, возвращаемый https://api.exchangeratesapi.io/latest
Ваш класс Currency должен быть следующим:
public class Rates
{
public double CAD { get; set; }
public double HKD { get; set; }
public double ISK { get; set; }
public double PHP { get; set; }
public double DKK { get; set; }
public double HUF { get; set; }
public double CZK { get; set; }
public double AUD { get; set; }
public double RON { get; set; }
public double SEK { get; set; }
public double IDR { get; set; }
public double INR { get; set; }
public double BRL { get; set; }
public double RUB { get; set; }
public double HRK { get; set; }
public double JPY { get; set; }
public double THB { get; set; }
public double CHF { get; set; }
public double SGD { get; set; }
public double PLN { get; set; }
public double BGN { get; set; }
public double TRY { get; set; }
public double CNY { get; set; }
public double NOK { get; set; }
public double NZD { get; set; }
public double ZAR { get; set; }
public double USD { get; set; }
public double MXN { get; set; }
public double ILS { get; set; }
public double GBP { get; set; }
public double KRW { get; set; }
public double MYR { get; set; }
}
public class Currency
{
public Rates rates { get; set; }
}
Ваш метод действия должен быть следующим:
public async Task<ActionResult> Index()
{
Currency CurencyInfo = new Currency();
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(Baseurl);
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Uri myUri = new Uri("https://api.exchangeratesapi.io/latest", UriKind.Absolute);
HttpResponseMessage Result = await client.GetAsync(myUri);
if (Result.IsSuccessStatusCode)
{
//Storing the response details recieved from web api
var CurrencyResponse = Result.Content.ReadAsStringAsync().Result;
//Deserializing the response recieved from web api and storing into the CurrencyInfo
CurencyInfo = JsonConvert.DeserializeObject<Currency>((JObject.Parse(CurrencyResponse)).ToString());
}
//returning the Currency Info to view
return View(CurencyInfo);
}
}
Примечание: Класс Rates содержит все свойства, возвращаемые API. Поэтому вы можете закомментировать любую валюту, данные которой вам не нужны. Я пробовал этот код, и он работает.
Вы можете использовать любой из онлайн-инструментов, таких как json2sharp, для создания классов / моделей для данных JSON, которые вы хотите десериализовать.