Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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
Asp.net mvc 在asp.net mvc中导出为xml_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 在asp.net mvc中导出为xml

Asp.net mvc 在asp.net mvc中导出为xml,asp.net-mvc,Asp.net Mvc,有人知道如何在asp.net mvc中为特定视图执行导出功能吗? 我想要以xml格式导出数据。 提前感谢假设您只想导出数据,而不想导出实际视图 在控制器中创建一个方法,该方法接受与视图相同的参数,序列化对象并返回结果xml using System.Xml; using System.Xml.Serialization; 更简单的答案是,在不调用母版页的情况下创建一个视图,在那里手工制作xml,并将其视为任何其他aspx页面,假设您只想导出数据而不是实际视图 在控制器中创建一个方法,

有人知道如何在asp.net mvc中为特定视图执行导出功能吗? 我想要以xml格式导出数据。
提前感谢

假设您只想导出数据,而不想导出实际视图

在控制器中创建一个方法,该方法接受与视图相同的参数,序列化对象并返回结果xml

  using System.Xml;
  using System.Xml.Serialization;


更简单的答案是,在不调用母版页的情况下创建一个视图,在那里手工制作xml,并将其视为任何其他aspx页面,假设您只想导出数据而不是实际视图

在控制器中创建一个方法,该方法接受与视图相同的参数,序列化对象并返回结果xml

  using System.Xml;
  using System.Xml.Serialization;


更简单的答案是在不调用母版页的情况下创建一个视图,在那里手工制作xml,并将其视为任何其他aspx页面

我将使用自定义操作结果:

public class XmlResult : ActionResult
{
    private readonly object _data;
    public XmlResult(object data)
    {
        _data = data;
    }

    public override void ExecuteResult(ControllerContext context)
    {
        if (_data != null)
        {
            var response = context.HttpContext.Response;
            response.ContentType = "text/xml";
            var serializer = new XmlSerializer(_data.GetType());
            serializer.Serialize(response.OutputStream, _data);
        }
    }
}
然后您可以定义一个视图模型来表示您的数据:

public class MyViewModel
{
    [XmlElement("product")]
    public ProductViewModel[] Products { get; set; }
}

public class ProductViewModel
{
    [XmlAttribute("id")]
    public int Id { get; set; }
    public string Name { get; set; }
}
并从控制器操作返回此视图模型:

public ActionResult Export()
{
    var model = new MyViewModel
    {
        Products = new[]
        {
            new ProductViewModel { Id = 1, Name = "item 1" },
            new ProductViewModel { Id = 2, Name = "item 2" },
            new ProductViewModel { Id = 3, Name = "item 3" },
        }
    };
    return new XmlResult(model);
}

我将使用自定义操作结果:

public class XmlResult : ActionResult
{
    private readonly object _data;
    public XmlResult(object data)
    {
        _data = data;
    }

    public override void ExecuteResult(ControllerContext context)
    {
        if (_data != null)
        {
            var response = context.HttpContext.Response;
            response.ContentType = "text/xml";
            var serializer = new XmlSerializer(_data.GetType());
            serializer.Serialize(response.OutputStream, _data);
        }
    }
}
然后您可以定义一个视图模型来表示您的数据:

public class MyViewModel
{
    [XmlElement("product")]
    public ProductViewModel[] Products { get; set; }
}

public class ProductViewModel
{
    [XmlAttribute("id")]
    public int Id { get; set; }
    public string Name { get; set; }
}
并从控制器操作返回此视图模型:

public ActionResult Export()
{
    var model = new MyViewModel
    {
        Products = new[]
        {
            new ProductViewModel { Id = 1, Name = "item 1" },
            new ProductViewModel { Id = 2, Name = "item 2" },
            new ProductViewModel { Id = 3, Name = "item 3" },
        }
    };
    return new XmlResult(model);
}

嗨,达林。非常感谢你的帮助。这将对我有帮助。嗨,达林。非常感谢你的帮助。这将对我有帮助。