c# - XML 到 C# 列表到 AspNet MVC 索引
问题描述
我必须显示具有多个记录的AvailabilityOutbound 和AvailabilityReturn 列表,即asp.net mvc 索引页面中每个记录的AvailabilityFlight。模型类和控制器方法的结构如下。我不知道下一步如何进行。下面的类是通过来自 SOAP asmx 服务的 XML 响应生成的,然后映射到 C# 类。
[XmlRoot(ElementName = "AvailabilityOutbound")]
public class AvailabilityOutbound
{
[XmlElement(ElementName = "AvailabilityFlight")]
public List<AvailabilityFlight> AvailabilityFlight { get; set; }
}
[XmlRoot(ElementName = "AvailabilityReturn")]
public class AvailabilityReturn
{
[XmlElement(ElementName = "AvailabilityFlight")]
public List<AvailabilityFlight> AvailabilityFlight { get; set; }
}
[XmlRoot(ElementName = "Availability")]
public class Availability
{
[XmlElement(ElementName = "AvailabilityOutbound")]
public AvailabilityOutbound AvailabilityOutbound { get; set; }
[XmlElement(ElementName = "AvailabilityReturn")]
public AvailabilityReturn AvailabilityReturn { get; set; }
}
[XmlRoot(ElementName = "AvailabilityFlight")]
public class AvailabilityFlight
{
[XmlElement(ElementName = "airline_rcd")]
public string Airline_rcd { get; set; }
[XmlElement(ElementName = "flight_number")]
public string Flight_number { get; set; }
[XmlElement(ElementName = "booking_class_rcd")]
public string Booking_class_rcd { get; set; }
[XmlElement(ElementName = "boarding_class_rcd")]
public string Boarding_class_rcd { get; set; }
}
需要显示数据的控制器方法是:
public ActionResult Index(string xmlResult)
{
var ser = new XmlSerializer(typeof(Availability));
using (var sr = new StringReader(xmlResult))
{
var obj = (Availability)ser.Deserialize(sr);
return //
}
//no idea how can i map the records to view
return View();
}
并认为:
@model IEnumerable<Project.Models.AvailabilityFlight>
我需要关于传递列表以查看和在索引视图中显示记录的指导,其中包含用于视图和索引方法的一些示例代码片段。
解决方案
首先,您必须返回Availability 才能查看
public ActionResult Index(string xmlResult)
{
var ser = new XmlSerializer(typeof(Availability));
using (var sr = new StringReader(xmlResult))
{
var obj = (Availability)ser.Deserialize(sr);
return View(obj);
}
}
鉴于:
@model Project.Models.Availability
@foreach (var item in Model.AvailabilityOutbound.AvailabilityFlight )
{
... // each item of AvailabilityFlight in AvailabilityOutbound
}
@foreach (var item in Model.AvailabilityReturn.AvailabilityFlight )
{
... // each item of AvailabilityFlight in AvailabilityReturn
}
推荐阅读
- delphi - Indy TIdHashMessageDigest5 HashStringAsHex 编译时错误:未声明的标识符:'HashStringAsHex'
- java - 为什么握手后我的套接字关闭了,我该如何解决这个问题?
- c# - 如何对将在多个步骤中创建的聚合进行建模,例如向导样式
- azure - 将 Azure 数字孪生与现有云环境连接
- verilog - 使用带负数的系统函数 $urandom_range(minval, maxval) 时的未定义行为
- r - 使用 R 处理多个光栅文件时保留原始文件名
- flutter - 关于防止 Listview.Builder() 重建所有项目
- sas - 寻找季节性效应的自变量?
- php - 参数太少而无法发挥作用
- php - 如何在 PHP 中显示多级动态表单域?