Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML到C#列表到AspNet MVC索引_C#_Asp.net_Xml_Asp.net Mvc_List - Fatal编程技术网

XML到C#列表到AspNet MVC索引

XML到C#列表到AspNet MVC索引,c#,asp.net,xml,asp.net-mvc,list,C#,Asp.net,Xml,Asp.net Mvc,List,我必须在asp.net mvc的索引页中显示Availability Outbound和Availability Return的列表,其中包含多个记录,即每个记录的Availability Flight。 模型类和控制器方法的结构如下所示。 我不知道下一步该怎么做。 下面的类是通过SOAP asmx服务的XML响应生成的,然后映射到C#类 意见如下: @model IEnumerable<Project.Models.AvailabilityFlight> @model IEnum

我必须在asp.net mvc的索引页中显示Availability Outbound和Availability Return的列表,其中包含多个记录,即每个记录的Availability Flight。 模型类和控制器方法的结构如下所示。 我不知道下一步该怎么做。 下面的类是通过SOAP asmx服务的XML响应生成的,然后映射到C#类

意见如下:

@model IEnumerable<Project.Models.AvailabilityFlight>
@model IEnumerable

我需要有关传递列表以在“索引”视图中查看和显示记录的指导,其中包含一些用于查看和索引方法的示例代码片段。

首先,您必须将可用性返回到“查看”

  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 
}

我将使用与以下帖子类似的代码创建数据集和显示:

将数据放入数据集中的代码如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds = new DataSet("Availability");
            DataTable dtFlight = new DataTable("Flight");
            ds.Tables.Add(dtFlight);

            dtFlight.Columns.Add("Airline RCD",typeof(string));
            dtFlight.Columns.Add("Flight Number",typeof(string));
            dtFlight.Columns.Add("Booking Class",typeof(string));
            dtFlight.Columns.Add("Boarding Class",typeof(string));

            DataTable dtReturn = new DataTable("Return");
            ds.Tables.Add(dtReturn);

            dtReturn.Columns.Add("Airline RCD", typeof(string));
            dtReturn.Columns.Add("Flight Number", typeof(string));
            dtReturn.Columns.Add("Booking Class", typeof(string));
            dtReturn.Columns.Add("Boarding Class", typeof(string));


            string xml = "put your sting here";
            Availability availability = DeSerialize<Availability>.Index(xml);

            foreach (AvailabilityFlight flight in availability.AvailabilityOutbound.AvailabilityFlight)
            {
                dtFlight.Rows.Add(new object[] { flight.Airline_rcd, flight.Flight_number, flight.Booking_class_rcd, flight.Boarding_class_rcd });
            }

            foreach (AvailabilityFlight flight in availability.AvailabilityReturn.AvailabilityFlight)
            {
                dtReturn.Rows.Add(new object[] { flight.Airline_rcd, flight.Flight_number, flight.Booking_class_rcd, flight.Boarding_class_rcd });
            }
        }


    }
    public class DeSerialize<T>
    {
        public static T Index(string xmlResult)
        {
            var ser = new XmlSerializer(typeof(T));
            using (var sr = new StringReader(xmlResult))
            {
                 return (T)ser.Deserialize(sr);
            }
        }

    }
    [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; }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用系统数据;
使用System.Xml;
使用System.Xml.Serialization;
使用System.IO;
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
数据集ds=新数据集(“可用性”);
数据表dtFlight=新数据表(“航班”);
ds.Tables.Add(dtFlight);
添加(“航空公司RCD”,类型(字符串));
dtFlight.Columns.Add(“航班号”,类型(字符串));
dtFlight.Columns.Add(“预订类”,typeof(字符串));
dtFlight.Columns.Add(“登机等级”,类型(字符串));
DataTable dtReturn=新数据表(“返回”);
ds.Tables.Add(dtReturn);
dtReturn.Columns.Add(“Airline RCD”,typeof(string));
dtReturn.Columns.Add(“航班号”,类型(字符串));
dtReturn.Columns.Add(“预订类”,typeof(string));
dtReturn.Columns.Add(“登机等级”,typeof(string));
string xml=“把你的刺放在这里”;
可用性=反序列化.Index(xml);
foreach(AvailabilityFlight航班在availability.AvailabilityOutbound.AvailabilityFlight中)
{
dtFlight.Rows.Add(新对象[]{flight.Airline\u rcd,flight.flight\u number,flight.Booking\u class\u rcd,flight.Boarding\u class\u rcd});
}
foreach(AvailabilityFlight航班在availability.AvailabilityReturn.AvailabilityFlight中)
{
dtReturn.Rows.Add(新对象[]{flight.Airline\u rcd,flight.flight\u number,flight.Booking\u class\u rcd,flight.Boarding\u class\u rcd});
}
}
}
公共类反序列化
{
公共静态T索引(字符串xmlResult)
{
var ser=新的XmlSerializer(typeof(T));
使用(var sr=newstringreader(xmlResult))
{
返回(T)序列反序列化(sr);
}
}
}
[XmlRoot(ElementName=“AvailabilityOutbound”)]
公共类可用性出站
{
[XmlElement(ElementName=“AvailabilityFlight”)]
公共列表可用性航班{get;set;}
}
[XmlRoot(ElementName=“AvailabilityReturn”)]
公共类可用性返回
{
[XmlElement(ElementName=“AvailabilityFlight”)]
公共列表可用性航班{get;set;}
}
[XmlRoot(ElementName=“可用性”)]
公共类可用性
{
[XmlElement(ElementName=“AvailabilityOutbound”)]
公共可用性出站可用性出站{get;set;}
[XmlElement(ElementName=“AvailabilityReturn”)]
公共可用性Return可用性Return{get;set;}
}
[XmlRoot(ElementName=“AvailabilityFlight”)]
公共舱可用性航班
{
[xmlement(ElementName=“airline\u rcd”)]
公共字符串\u rcd{get;set;}
[xmlement(ElementName=“航班号”)]
公共字符串航班号{get;set;}
[XmlElement(ElementName=“预订”类别“rcd”)]
公共字符串\u类\u rcd{get;set;}
[XmlElement(ElementName=“寄宿类”rcd”)]
公共字符串\u类\u rcd{get;set;}
}
}

是否要在查看中获取
可用性出站
中的
可用性飞行
可用性返回
中的
可用性飞行
的每个项目?@Hossein我正在获取obj中的值,但无法在视图中传递。我想显示每个项目的AvailabilityOutbound和AvailabilityReturn,即AvailabilityFlight in列表。有时可用性一个航段中的航班可能不适用于其他航段,在这种情况下,只显示一个航段。
@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 
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds = new DataSet("Availability");
            DataTable dtFlight = new DataTable("Flight");
            ds.Tables.Add(dtFlight);

            dtFlight.Columns.Add("Airline RCD",typeof(string));
            dtFlight.Columns.Add("Flight Number",typeof(string));
            dtFlight.Columns.Add("Booking Class",typeof(string));
            dtFlight.Columns.Add("Boarding Class",typeof(string));

            DataTable dtReturn = new DataTable("Return");
            ds.Tables.Add(dtReturn);

            dtReturn.Columns.Add("Airline RCD", typeof(string));
            dtReturn.Columns.Add("Flight Number", typeof(string));
            dtReturn.Columns.Add("Booking Class", typeof(string));
            dtReturn.Columns.Add("Boarding Class", typeof(string));


            string xml = "put your sting here";
            Availability availability = DeSerialize<Availability>.Index(xml);

            foreach (AvailabilityFlight flight in availability.AvailabilityOutbound.AvailabilityFlight)
            {
                dtFlight.Rows.Add(new object[] { flight.Airline_rcd, flight.Flight_number, flight.Booking_class_rcd, flight.Boarding_class_rcd });
            }

            foreach (AvailabilityFlight flight in availability.AvailabilityReturn.AvailabilityFlight)
            {
                dtReturn.Rows.Add(new object[] { flight.Airline_rcd, flight.Flight_number, flight.Booking_class_rcd, flight.Boarding_class_rcd });
            }
        }


    }
    public class DeSerialize<T>
    {
        public static T Index(string xmlResult)
        {
            var ser = new XmlSerializer(typeof(T));
            using (var sr = new StringReader(xmlResult))
            {
                 return (T)ser.Deserialize(sr);
            }
        }

    }
    [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; }
    }
}