Asp.net mvc 在asp.net mvc中导出为xml
有人知道如何在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页面,假设您只想导出数据而不是实际视图 在控制器中创建一个方法,
提前感谢假设您只想导出数据,而不想导出实际视图 在控制器中创建一个方法,该方法接受与视图相同的参数,序列化对象并返回结果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);
}
嗨,达林。非常感谢你的帮助。这将对我有帮助。嗨,达林。非常感谢你的帮助。这将对我有帮助。