Nil*_*Pun 1 linq-to-xml asp.net-mvc-3
我正在尝试从C#List生成XML文档.xml文档必须遵守第三方XML Schema.
我已经看过XSD2CODE工具,但没有得到任何结果.
有人可以帮我解决如何使用LINQ to xml生成XML文件并使用MVC3返回XML文件.
LINQ to XML用于查询XML,而不是生成.如果要生成XML文件,还有其他技术:
但无论您选择采用哪种XML生成技术,我都建议您编写一个自定义操作结果来执行此作业,而不是使用XML生成管道污染您的控制器,这绝对不是它的责任.
让我们使用第三种方法(XmlSerializer)进行示例.
假设您已定义了要转换为XML的视图模型:
public class MyViewModel
{
public string Foo { get; set; }
public string Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在我们可以编写一个自定义操作结果来执行此转换:
public class XmlResult : ActionResult
{
public XmlResult(object data)
{
if (data == null)
{
throw new ArgumentNullException("data");
}
Data = data;
}
public object Data { get; private set; }
public override void ExecuteResult(ControllerContext context)
{
var response = context.HttpContext.Response;
response.ContentType = "text/xml";
var serializer = new XmlSerializer(Data.GetType());
serializer.Serialize(response.OutputStream, Data);
}
}
Run Code Online (Sandbox Code Playgroud)
并且控制器动作将非常标准:
public ActionResult Index()
{
var model = new MyViewModel
{
Foo = "foo",
Bar = "bar"
};
return new XmlResult(model);
}
Run Code Online (Sandbox Code Playgroud)
您可能还想检查ASP.NET MVC 4 Web API,这使得这些场景变得非常简单.
| 归档时间: |
|
| 查看次数: |
3689 次 |
| 最近记录: |