![](/img/trans.png)
[英]How get data from asp.net web api in asp.net mvc controller in the same project
[英]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.