如何在ASP.NET中返回XML

Bla*_*laM 1 xml architecture asp.net ajax service

这是一个非常基本的问题.我只是在学习ASP.NET(C#)的使命.我以前做过经典的ASP和PHP.

对于这个项目,我手上有ASP.NET 2.0.

我有一个Web表单,它有一个jqGrid Datagrid,我想通过AJAX提供XML数据.但是jqGrid不是问题所在."问题"是我应该采用的方法来生成XML.

我如何在ASP.NET中执行此操作?

  • 我是否创建了一个生成该数据的新Web表单?
  • 我是否使用新的Web服务(不会返回我需要的XML,是吗?)?
  • 我是否以某种方式将一个函数放在显示该表的现有Web窗体中?如果是这样,怎么样?

做出决定后:如何输出XML?我不想使用ASP.NET的任何XML组件,因为它只是简单,简单的XML,彼此之后有一条记录.在这里使用System.Xml会有太大的开销.

<?xml version='1.0' encoding='utf-8'?>
<rows>
<page>1</page>
<total>25</total>
<records>3</records>
  <row id='1'>
    <cell>Row 1, Column 1</cell>
    <cell>Row 1, Column 2</cell>
    <cell>Row 1, Column 3</cell>
  </row>
  <row id='2'>
    <cell>Row 2, Column 1</cell>
    <cell>Row 2, Column 2</cell>
    <cell>Row 2, Column 3</cell>
  </row>
  <row id='3'>
    <cell>Row 3, Column 1</cell>
    <cell>Row 3, Column 2</cell>
    <cell>Row 3, Column 3</cell>
  </row>
</rows>
Run Code Online (Sandbox Code Playgroud)

根据我以前使用其他脚本语言的经验,我只想打印出一个XML标签流(Response.Write).如果我在ASP.NET中这样做,我会下地狱吗?

Jon*_*eet 7

使用System.Xml(或System.Xml.Linq)可以减少开销,而不是手动编码Response.Write,并确保引用所需的一切,整理编码等.为什么你想要重新发明轮子?

创建一个新的ashx而不是aspx页面,创建适当的XmlDocument/XDocument并将其写入响应,并适当地设置内容类型.

有关创建RSS源的示例,请参阅此文章.它与我在我的网站上用来从数据库生成RSS的方式相同 - 使用LINQ to XML,它将整个文档创建为单个(无可否认的大而可读)语句.然后它只是设置内容类型和调用的情况context.Response.Write(doc).非常简单.