作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难将列表对象模型中的值显示到 View 。
我试过用这段代码显示它
@model IEnumerable<MVC.Models.RootObject>
@foreach (var item in @Model)
{
<li>@item.records</li>
}
但是显示错误
传递到字典中的模型项的类型为“MVC.Models.RootObject”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[MVC.Models.RootObject]”的模型项。
这是我用来将数据从模型传递到 View 的 Controller
var transno = "ST-100420190001";
var client = new HttpClient();
var httpRequestMessage = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://myurl.com/" + transno),
Headers = {
{ HttpRequestHeader.Accept.ToString(), "application/json" },
{ HttpRequestHeader.ContentType.ToString(), "application/json"},
{ "client-id", "client_id"},
{ "client-secret","client_secret"},
{ "partner-id","partner_id"},
{ "X-Version", "1" }
}
};
var response = client.SendAsync(httpRequestMessage).Result;
RootObject obj = JsonConvert.DeserializeObject<RootObject>(await
response.Content.ReadAsStringAsync());
return View(obj);
RootObject 模型如下所示
public class RootObject
{
public List<Record> records { get; set; }
public int totalRecords { get; set; }
}
然后 Record 模型看起来像这样
public class Record
{
public string transferId { get; set; }
public string type { get; set; }
public DateTime createdAt { get; set; }
public string dateUpdated { get; set; }
public string state { get; set; }
public string senderTransferId { get; set; }
}
最佳答案
好吧,让我们看看错误信息
您的 View 需要 RootObject
的 IEnumerable
,但您只是传入了一个 RootObject。
传递到字典中的模型项的类型为“MVC.Models.RootObject”,但此字典需要类型为“System.Collections.Generic.IEnumerable”的模型项1[MVC.Models.RootObject] '.
我不确定你的 API 用什么来回复,但你可能需要 DeserializeObject
到 RootObject
的 IEnumerable
而不是单个对象。你试过调试这些线路吗?
var response = client.SendAsync(httpRequestMessage).Result;
RootObject obj = JsonConvert.DeserializeObject<RootObject>(await response.Content.ReadAsStringAsync());
return View(obj);
如果情况并非如此,并且您希望稍后调用多个 API 来构建列表
类似这样的方法应该可行,但我建议按照上面的方法操作,因为从您发布的 Razor 来看,它似乎更符合您的要求。
var response = client.SendAsync(httpRequestMessage).Result;
RootObject obj = JsonConvert.DeserializeObject<RootObject>(await
response.Content.ReadAsStringAsync());
IEnumerable<RootObject> list = new List<RootObject>(){ obj };
return View(list);
关于c# - 如何在 ASP.Net MVC 中将列表对象显示到 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017455/
我是一名优秀的程序员,十分优秀!