繁体   English   中英

如何在ASP.NET MVC中使用API​​获取数据?

[英]How to get data using API in ASP.NET MVC?

我是一个完全的新手,可以使用C#和ASP.NET MVC进行后端开发,因此我可能觉得我的问题有点愚蠢,对此感到抱歉,但是我已经花了很多时间搜索有关此信息并阅读文档,然后才发表几乎没有。

因此,我需要使用coinmarketcap.com API获取有关加密货币的信息,并将其显示在表格中。 我创建了控制器类,并使用了API文档中的示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Net;

namespace CryptoCurrency.Controllers
{
    public class CryptoCurrencyController : Controller
    {
        private static string API_KEY = "key";

        // GET: CryptoCurrency
        public ActionResult Index()
        {

            // here i need to call the makeAPICall() method,
            // get data about cryptocurrencies and send it to the view

            return View();
        }

        static string makeAPICall()
        {
            var URL = new UriBuilder("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest");

            var queryString = HttpUtility.ParseQueryString(string.Empty);
            queryString["start"] = "1";
            queryString["limit"] = "80";
            queryString["convert"] = "USD";

            URL.Query = queryString.ToString();

            var client = new WebClient();
            client.Headers.Add("X-CMC_PRO_API_KEY", API_KEY);
            client.Headers.Add("Accept", "application/json");
            return client.DownloadString(URL.ToString());
        }
    }
}

如何通过API获取数据并将其正确发送到视图? 我应该保留client.DownloadString(URL.ToString()); 或使用json代替字符串? 我的猜测也是,我应该创建一个包含名称,符号,date_added和其他名称的加密货币模型。

我不需要完全准备好完整的代码,如果您将我引导到一些可以理解的关于我的问题的初学者信息,我会很高兴,因为现在我淹没了所有这些信息并且找不到我需要的。

谢谢!

您必须从操作中调用API,然后反序列化您定义的视图模型中获得的字符串,最后将此视图模型传递给视图:

// GET: CryptoCurrency
public ActionResult Index()
{
    var str = MakeAPICall();
    var viewModel = JsonConvert.Deserialize<YourViewModel>(str);
    return View(viewModel);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM