RT~~我想让ASP.NET MVC返回XML结果,应该怎么做?
继承ActionResult,然后重写就可以了,代码如下:
public class XmlResult : ActionResult
{
// 可被序列化的内容
object Data { get; set; }
// Data的类型
Type DataType { get; set; }
// 构造器
public XmlResult(object data, Type type)
{
Data = data;
DataType = type;
}
// 主要是重写这个方法
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
HttpResponseBase response = context.HttpContext.Response;
// 设置 HTTP Header 的 ContentType
response.ContentType = "text/xml";
if (Data != null)
{
// 序列化 Data 并写入 Response
XmlSerializer serializer = new XmlSerializer(DataType);
MemoryStream ms = new MemoryStream();
serializer.Serialize(ms, Data);
response.Write(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
}
}
}