ASP.NET MVC 扩展一个 XmlResult 的 ActionResult ,以便返回XML文件
2011-05-02 17:10 音乐让我说 阅读(1003) 评论(0) 收藏 举报代码能说明一切:
namespace MvcAppOne.Extendsions
{
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using System.IO;
using System.Xml.Serialization;
public class XmlResult : ActionResult
{
public XmlResult(Object data)
{
this.Data = data;
}
public Object Data { get; private set; }
public override void ExecuteResult(ControllerContext context)
{
if (Data == null)
{
//new EmptyResult().ExecuteResult(context); // 这句代码可有可无
return;
}
context.HttpContext.Response.ContentType = "application/xml";
using (MemoryStream ms = new MemoryStream())
{
XmlSerializer xs = new XmlSerializer(Data.GetType());
xs.Serialize(ms, Data); // 把数据序列化到内存流中
ms.Position = 0;
using (StreamReader sr = new StreamReader(ms))
{
//读取流对象
context.HttpContext.Response.Output.Write(sr.ReadToEnd());
}
}
}
}
}
谢谢浏览!
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号