我正在显示异步加载数据的图表,因为获取数据的搜索工作非常繁重。数据必须以 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/