从Asp.net MVC中的ActionMethod返回XML的首选方法是什么?

Sté*_*ane 2 .net xml asp.net-mvc

我正在显示异步加载数据的图表,因为搜索是获取数据的工作非常繁重.数据必须以XML格式返回,以使图表库满意.
我的ActionMethods返回一个ContentResult,其类型设置为text/xml.我使用Linq to XML构建我的Xml并调用ToString.这很好但是测试并不理想.
我有另一个想法来实现这一点,即返回一个使用XSLT View引擎构建我的XML的视图.

我很好奇,我总是试图以"正确的方式"做事.那你们怎么处理这样的场景呢?

您是否实现了不同的ViewEngine(如xslt)来构建XML,或者在控制器内部构建XML(或者为控制器提供服务)?

编辑:

由于我需要将数据传递给图表库,我必须遵循他们的xml结构.他们的符号不是我想要建立我的模型类的方式.这就是为什么我自己使用Linq to XML构建XML并想知道模板是否会更好.
简单的序列化不是我想要的

Dar*_*rov 5

编写自定义操作结果:

public class XmlActionResult : ActionResult
{
    public XmlActionResult(object data)
    {
        Data = data;
    }

    public object Data { get; private set; }

    public override void ExecuteResult(ControllerContext context)
    {
        context.HttpContext.Response.ContentType = "text/xml";

        // TODO: Use your preferred xml serializer 
        // to serialize the model to the response stream :
        // context.HttpContext.Response.OutputStream
    }
}
Run Code Online (Sandbox Code Playgroud)

在你的控制器动作中:

public ActionResult Index() 
{
    var model = _repository.GetModel();
    return new XmlActionResult(model);
}
Run Code Online (Sandbox Code Playgroud)