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

标签 .net xml asp.net-mvc

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

我很好奇,并且总是尝试“以正确的方式”做事。那么你们是如何处理这种情况的呢?

您是否实现不同的 ViewEngine(如 xslt)来构建 XML,还是在 Controller (或为 Controller 提供服务的服务)内构建 XML?

编辑:

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

最佳答案

编写自定义操作结果:

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
    }
}

在你的 Controller 操作中:

public ActionResult Index() 
{
    var model = _repository.GetModel();
    return new XmlActionResult(model);
}

关于.net - 在 Asp.net MVC 中从 ActionMethod 返回 XML 的首选方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592885/

相关文章:

.net - 覆盖 GetHashCode 的最佳算法是什么?

.net - 在PowerShell中使用WinSCP将整个驱动器上载到服务器,从而跳过所有无法读取的文件和文件夹

xml - 你能在 xsl 的模板中调用模板吗

xml - 导入 XML 导致 Excel 崩溃

c# - ASP.NET MVC - 从另一个@helper 调用 Razor @helper

asp.net - 何时在 ASP.NET MVC 应用程序生命周期中处置静态资源

asp.net - System.Web.Optimization是否是.Net Framework 4.5的一部分?

XML 元素换行

asp.net-mvc - 整数值的必需属性

c# - 如何通过IEnumerable列表查看