c# - 我如何在 mvc 中使用 WebApi 服务
问题描述
在这里,我正在尝试访问WebApi
服务,Mvc
但出现错误:
asSeverity 代码描述 项目文件行错误 CS0029 无法将类型“字符串”隐式转换为“System.Collections.Generic.IEnumerable”
IEnumerable<MasterTab> resResult = result.Content.ReadAsStringAsync().Result;
public ActionResult Index()
{
using(var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:54040/Api/Marketing/");
var responseTask = client.GetAsync("GetMarketing");
responseTask.Wait();
var result = responseTask.Result;
if (result.IsSuccessStatusCode)
{
IEnumerable<MasterTab> resResult = result.Content.ReadAsStringAsync().Result;
}
else
{
students = Enumerable.Empty<MasterTab>();ModelState.AddModelError(string.Empty, "Server Error Please Conatct Admin");
}
}
return View(students);
}
解决方案
无论哪种方式,我们都可以ApiController
直接从您的MVC
控制器调用:
public class HomeController : Controller
{
public ActionResult Index()
{
var listOfFiles = new MarketingController().GetMarketing();
return View(listOfFiles);
}
}
如果我们WebApi
在同一个解决方案中完全拥有一个不同的项目,那么我们可以从MVC
控制器调用相同的项目,如下所示:
public async Task<ActionResult> Index()
{
string apiUrl = "http://localhost:58764/api/Marketing/GetMarketing";
using (HttpClient client=new HttpClient())
{
client.BaseAddress = new Uri(apiUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync(apiUrl);
if (response.IsSuccessStatusCode)
{
var data = await response.Content.ReadAsStringAsync();
EntityType entity = Newtonsoft.Json.JsonConvert.DeserializeObject<EntityType>(data);
}
}
return View();
}
推荐阅读
- android - 如何在原始功能之外增加动画的持续时间?
- ms-word - 使用旧版本的 RTF
- javascript - 基于 vue-route-link active 的动态颜色
- azure - 在 Azure 托管的多容器 Web 应用程序中,无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序
- python - 上传到 GitHub 的 Jupyter notebook 不显示folium map
- assembly - 大会 AT&T:movq %rdi, %rdx?
- java - 无法解决关闭 preparesStatement 的 SonarQube 错误
- ios - 无效的 `Podfile` 文件:无法加载此类文件 -- path/to/.ios/Flutter/podhelper.rb
- powerbi - Power Bi 排序日期表
- html - 用 svg 中的透明路径重叠彩色矩形/在与路径的交叉点上破坏矩形填充颜色